日期:2014-05-18  浏览次数:20937 次

struts中checkbox和multibox的怪异问题!该死!!!!!!
我有一个JSP页面用来显示所有用户的,用户有query,basic,sys等权限,
点击修改可以修改用户的权限,都是用checkbox来设置的。
如果用户没有任何权限的话,选中checkbox或者multibox是可以修改成功的,
如果用户有权限,在修改页面取消它的权限的时候就出错了,
服务器获得的仍然是没修改前的状态信息。

比如说用户有query和basic权限:
表单用的是DynaValidatorActionForm,所有属性的类型都是String,初始化值为"off",
数据库中的值1为有权限,0为没权限。
Action获取某个用户的信息之后,进行如下判断:
userForm.set("query",user.getQuery().toString().equals("0")?"off":"on");
userForm.set("basic",user.getQuery().toString().equals("0")?"off":"on");
userForm.set("sys",user.getQuery().toString().equals("0")?"off":"on");
之后转到修改页之后就是
<html:checkbox property="query"/>
<html:checkbox property="basic"/>
<html:checkbox property="sys"/>
前2个是选中状态,如果我将query,basic取消之后,在服务器端获得的仍然是query和basic权限,
不知道怎么搞的,郁闷死了。。。。。
高手来帮忙解决下,不胜感激了!



------解决方案--------------------
思路错了吧..
不用这样来判断checkbox吧..
------解决方案--------------------
觉得怪怪的问题 按道理不会的哦
------解决方案--------------------
html:checkbox在Struts中是单选的。

如果想使用多选的话,最好使用html:multibox这个复选框组标签。

对于标签的设值,如楼主的代码所示。使用ActionForm进行设置。

只不过mulitBox中设值是以字符串数组形式设置的。