首页 > 代码库 > struts2中<s:checkboxlist/>的用法详解

struts2中<s:checkboxlist/>的用法详解

Html代码

  1. 选择角色<br>  
  2. <s:checkboxlist list="#request.roleuserList" listKey="roleId" listValue=http://www.mamicode.com/"roleName" value=http://www.mamicode.com/"#request.rolelist.{roleId}" name="roleIds"></s:checkboxlist>  

 

说明:

其中#request.roleuserList对应后台放入request作用域的roleuserList这个list;

listKey="roleId" 

 这里的roleId对应后台roleuserList中role这个bean的属性roleId,listKey也是将要传入后台的值;

listValue="http://www.mamicode.com/roleName" 自然是显示在页面上的内容了;

value="http://www.mamicode.com/#request.rolelist.{roleId}" 

 这句话的意思是,给s:checkboxlist选取默认值,将对应后台放入request作用域的rolelist这个list中的roleid组合成数组,

类似{1,2,3}这种,然后标签会自动匹配。

name="roleIds“ 这个roleIds可以在后台action中使用get set一个roleIds数组属性来取值,或者直接用request作用域取值,都要放数组中;

 

 

 

struts2的s:checkboxlist 

 

struts2里增加了一个新的UT标签s:checkboxlist,下面介绍下使用方法。
s:checkboxlist用于画面上显示一组复选框,缺省是横排输出,后面将介绍如何修改ftl文件使得它能按任意方式输出。
标签格式:
    <s:checkboxlist name="" list="" listKey="" listValue="" value="" />
    name-定义标签名,用于接收画面上选中的复选框,故应与Action里定义的属性一致,且多为数组;
    list-定义集合变量,用于输出复选框到画面上,一般在Action里定义一个List或Map属性;
    listKey-如果在Action里定义的是一个List,则往往会在List里定义一个Bean,它只有两个属性,其中一个(比如id)就在这里设置;
                如果在Action里定义的是一个Map,则Map的key就在这里设置;
    listValue-如果在Action里定义的是一个List,则往往会在List里定义一个Bean,它只有两个属性,另外一个(比如name)就在这里设置;
                  如果在Action里定义的是一个Map,则Map的value就在这里设置;
    value-用于回显画面上被选中的复选框,假如画面有输入检查,如果有错则返回原画面并显示出错信息,这时候就需要使用它。
             一般把它设成和name一致就可以了。
注意点:
    为了能正确显示已被选中的复选框,一定要使得name的数组类型与listKey的类型一致。
    比如,name设成String[] users,则listKey就要设成String id;如果name设成Integer[] users,则listKey就要设成Integer id;
修改ftl文件改变输出方式:
    1.搜索struts2-core-xxx.jar,找到checkboxlist.ftl文件,拷贝出来;
    2.在自己的工程的src下新建template.simple包,放置上述文件;
    3.用文本编辑器打开该文件,修改成自己希望输出的格式,保存,OK;