日期:2014-05-17  浏览次数:20665 次

checkbox 批量删除 后台接收不到 checkbox的values
我采用checkbox 复选框的方式进行批量删除
jsp代码:
....
<script type="text/javascript">
// 全选
function checkAll($obj){
var element = document.getElementsByName("selectFlag");
for(var i=0; i<element.length; i++){
element[i].checked = $obj.checked; 
}
}

</script>
.....

<table style="border: 1px #000000 solid" width=500 height=100
cellSapcing=0 cellPadding=0>
<tr style="border: 1px #000000 solid">
<td><input type="checkbox" name="ifAll" id="ifAll" onClick="checkAll(this)"></td>
<td width=20%>用户编号</td>
<td width=20% align="center">用户名称</td>
<td width=20% align="center">所属机构</td>
<td width=20% align="center">角色</td>
</tr>
<s:iterator value="#request.userList" var="user">
<tr>
<td><input type="checkbox" name="selectFlag" id="selectuserId" value="${id} }"></td> <td align="center"><a
href="userfindUser.action?userId=${id }"><s:property
value="id" /></td>
<td align="center"><a
href="userfindUser.action?userId=${id }"><s:property
value="UserName" /></a></td>
<td align="center"><s:property value="UserOrg" /></td>
<td align="center"><s:property value="UserRole" /></td>
<td align="center"><a href="userdelUser.action?userId=${id}">删除</a>
</td>
</tr>

</s:iterator>
</table> 


java代码:
....

public String delUsers(){
HttpServletRequest request = ServletActionContext.getRequest();
String [] userIds = request.getParameterValues("selectuserId"); System.out.println(userIds);
return "userinfoList";
}
......
我要做的是实现批量删除数据
为什么在后台读取不到 userIds的值呢?

------解决方案--------------------
我是说了你用的url直接访问的就是get方式请求的你后面必须自己讲参数传递过去啊你如果想要传递多个值
你可以这样例如:userIds=1,2,3然后到后台通过getParameter("userIds")取得然后去split(",")分解取得所有的id,这样很麻烦,因为url重写的方式传值是不能直接传递数组的,建议用表单提交吧,