最近开始学struts2,用得不熟,向大家求助了. 
先说下我的需求吧,修改用户权限,我用多选框来实现,假设权限总共有四种(即多选项要有四个),某用户有其中的两个权限, 
在jsp界面显示的方式应该是:显示四个权限,其中符合该用户的两个权限要打勾上.(不好意思,说个有点生硬,大抵就这样意思吧) 我在UserAction已定义了:String[] userRights,并写有get\set方法,这里我存权限列号,如:{"01","02"} 
还有一个权限列表(存在所有权限对象的List,已定义权限bean类:Rights):ArrayList userRightsList, 
存入request.setAttribute("userRightsList", userRightsList),转向jsp时,我用如下方式展示所有权限: 
    <table> 
      <s:iterator value="#request.userRightsList" id="userRights" status="status"> 
    <tr> 
      <td> 
        <s:checkbox name="userRights" value="false" fieldValue="%{#userRights.userRightsNo}"> </s:checkbox> 
      </td> 
      <td> 
    ${userRights.userRightsName} 
      </td> 
    </tr>       
      </s:iterator> 
    </table> 上面是显示所有权限,没问题的,每个权限的值是权限编号,我用: <s:property value="userRights"/>显示出01,02两个权限编号,说明,权限数组有值,请问,我如何做才能让01,02两个权限编号自动的打勾呢?我知道,我列出所有权限时,用了value="false"为不打勾的,有种办法就是在里面判断,当为用户权限时,就设为:value="true",但我试了好久,很杂乱,不好用,记得struts1.2时,form是可以自动绑定的,可到了struts2,怎么绑定呢?向高手赐教!可以在我代码上改,也可以贴些类型代码,在此先谢了! 

解决方案 »

  1.   

    回答过了 用s:if 在value里面判断注意 struts 标签套标签的赋值规则
      

  2.   


    有别的办法吗?这样在value里,还要写个迭代器,才能判断,代码不好看也就算了,感觉也很乱的....
      

  3.   

    用checkboxlist 更简单 
    JSP: 
    <s:checkboxlist name="rolelist" list="rolemap" listKey="js_id" listValue="jsmc" value="roleselected"/> ACTION: 
    List <Map <String,String>> rolemap;//存所有的选项 
    private String[] roleselected;//存已选中的选项 
    private String rolelist;//存更新后选中的选项(保存时调用)
      

  4.   


    忘了使用checkboxlist了,只要这个才能实现自动的绑定的,checkbox要判断的,多谢啦,结了..