有时候在JSP里,我们会使用很多相同name的field,比如像这样:
如果使用(ServletRequest)request.getParameterValues("view1"),这样将这请求发送到的servlet或者jsp中得到一个数组,而其值将是{“xxd1”,“xxd2”, “xxd3”},这样有不灵活的地方,因为,在前台JSP中显示的部分往往是所见的,而真正传递的值是我们希望的每个checkbox下对应属性valule中的值,也就是说,我们希望传递的是{“a”,“b”, “c”}
为了实现这样的传递值,那么此时,我们只需要借助JavaScript的帮忙:
加入Javascript function:
而同时我们只需要在原先的Jsp的form下加入这一行:
提交后,在请求发送的下一个servlet或者jsp中通过:
即可获得这一String: “a, b, c”
你明白了吗? Keep Moving on
<tr>
<td><input type="checkbox" name="view1"
value="a" /> xxd1</td>
<td><input type="checkbox" name="view1"
value="b" /> xxd2</td>
<td><input type="checkbox" name="view1"
value="c" /> xxd3</td>
</tr>
如果使用(ServletRequest)request.getParameterValues("view1"),这样将这请求发送到的servlet或者jsp中得到一个数组,而其值将是{“xxd1”,“xxd2”, “xxd3”},这样有不灵活的地方,因为,在前台JSP中显示的部分往往是所见的,而真正传递的值是我们希望的每个checkbox下对应属性valule中的值,也就是说,我们希望传递的是{“a”,“b”, “c”}
为了实现这样的传递值,那么此时,我们只需要借助JavaScript的帮忙:
加入Javascript function:
function get_check_values(){
var c_value = '';
for(var j = 0; j < document.getElementsByName('view1').length; j ++){
if( document.getElementsByName('view1')[j].checked)
c_value = c_value + document.getElementsByName('view1')[j].value + ',';
}
document.getElementById('viewValue').value = c_value;
}
而同时我们只需要在原先的Jsp的form下加入这一行:
<input type="hidden" name="viewValue" id="viewValue" />
提交后,在请求发送的下一个servlet或者jsp中通过:
String strValues = request.getParameter("viewValue");
即可获得这一String: “a, b, c”
你明白了吗? Keep Moving on