前台在JSP頁面上選中多個選項, 把這些值傳到servlet裡面, 完成對班級課程的添加。 在JSP中用checkbox實現多選,所有的chekbox都命同樣的名,在後台接收到的就是一個字串數組。 可用它來接收:String[] 字串名 = request.getParameterValues("表單名"); 然後用字串的.lenth屬性可以得出數組的長度。 由於除了第一列表單可以只把選中的傳到後台,其它的都會全部一起傳過去,不管有沒有選中,在這裡可以用下標的判斷哪些是選中了的值, 而下標可以通過一個隱藏欄位傳到後台, 隱藏欄位的HTML標籤為: <input type="hidden" value="“ name=""> ----------------------------------------------Jsp頁面-------------------------------------------------------- <form action="<%=basePath%>servlet/TermCourseServer?pattern=added" method="post"> <table border="1" align="left"> <tr> <th width="110"> 班級: </th> <td> <select name="termId"> <% for (int i = 0; i < terms.size(); i++) { Term term = terms.get(i); %> <option value="<%=term.getId() %>"> <%=term.getTermName()%> </option> <% } %> </select> </td> </tr> <tr> <th> 選擇 </th> <th> 名稱 </th> <th> 老師 </th> <% for (int i = 0; i < courses.size(); i++) { Course course = courses.get(i); %> <tr> <td> <input type="hidden" value="<%=course.getId() %>" name="courseId">//利用隱藏欄位來接收courseId的值,而在下面的複選框則接受的是下標值 <input type="checkbox" value="<%=i %>" name="index"> </td> <td> <%=course.getCourseName()%> </td> <td> <select name="teaId"> <option value="null"> ---請選擇老師--- </option> <% ArrayList<TeacherInfo> teachers1 = new JTermCourses(course) .getTeachers(); //被封裝了的JTermCoursebean; for (int j = 0; j < teachers1.size(); j++) { TeacherInfo teacher = teachers1.get(j); %> <option value="<%=teacher.getId()%>"> <%=teacher.getTeaName()%> </option> <% } %> </select> </td> </tr> <% } %> </td> </tr> <td align="center" colspan="2"> <input type="submit" value="確定"> <input type="reset" value="取消"> </td> </tr> </table> </form> ---------------------------------------------Servlet頁面------------------------------------------- private void added(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String termId = request.getParameter("termId"); String[] courseIds = request.getParameterValues("courseId"); //接收前台的值傳,為一一對應的數組 String[] teaIds = request.getParameterValues("teaId"); String[] indexs = request.getParameterValues("index"); for (int i = 0; i < indexs.length; i++) { int nIndex = new Integer(indexs[i]); //new Integer():即是強轉換成整型變數。用來獲得下標值 TermCourse termCourse = new TermCourse(); termCourse.setTermId(termId); termCourse.setCourseId(courseIds[nIndex]); //通過數組下標來得到被選中的值,下面也同樣的。 termCourse.setTeaId(teaIds[nIndex]); new TermCourseDAO().add(termCourse); } response.sendRedirect("TermCourseServer?pattern=add"); //返回到添加的servlet,到添加的頁面。 } |