最近使用Struts2的<s:checkbox/>标签来实现用户的多选要求。
<s:checkbox/>有下面几个属性:id、name、value、fieldValue、label共计5个。
id和name: 指的是该标签的标识id和标识名。
value : 指是否选中,其值只能为True或False,相当于传统checkbox中的checked。
fieldValue : 相当于传统checkbox中的value值。
label : 对于该checkbox显示在页面上方框后面的描述。
假如:我要用角色id(RoleId)和角色名称(RoleName)来生成checkbox,则采用如下写法:
<s:checkbox id="permisskey" name="permisskey" label="admin" value="true" fieldValue="Super"/>
<s:checkbox id="permisskey" name="permisskey" label="user" value="false" fieldValue="Userr"/>
显示的结果是:超级管理员选项选定,而普通用户未选定,并且两个选项框不在同一行,即默认换行操作
以上两行对应的html代码如下:
<input type="checkbox" id="permisskey" name="permisskey" checked value="Super">admin
<input type="checkbox" id="permisskey" name="permisskey" value="Userr">user
想取消上面说的默认换行操作,可以设定theme=simple,如下
<s:checkbox theme="simple" id="permisskey" name="permisskey" label="admin" value="true" fieldValue="Super"/>
<s:checkbox theme="simple" id="permisskey" name="permisskey" label="user" value="false" fieldValue="User"/>
显示的结果没有自动换行,也没有描述(label),对应的html代码:
<input type="checkbox" id="permisskey" name="permisskey" checked value="Role_Admin">
<input type="checkbox" id="permisskey" name="permisskey" value="Role_User">
另:theme属性具有一定的作用范围,在相应的标签内所有struts标签都适用