JSP中复选框向后台传值

JSP中复选框向后台传值
2008-10-09 14:41

前台在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="确定">
&nbsp;&nbsp;&nbsp;&nbsp;
<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,到添加的页面。
}

http://hi.baidu.com/jiong0818/blog/item/9ba33c1199329416b9127ba7.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值