<s:checkboxlist list="#{'篮球':'篮球','足球':'足球','排球':'排球'}"></s:checkboxlist>
这么定义会出现下面这种错误
HTTP Status 500 - Expression parameters.name is undefined on line 38, column 32 in template/simple/checkboxlist.ftl. - Class: freemarker.core.TemplateObject
错误原因 没有 name
<s:checkboxlist list="#{'篮球':'篮球','足球':'足球','排球':'排球'}" name="hobby" ></s:checkboxlist>
给复选框设置默认值
<s:checkboxlist list="#{'篮球':'篮球','足球':'足球','排球':'排球'}" name="hobby"
value="{'篮球','足球'}"></s:checkboxlist>
获取值并且回显
<s:checkboxlist list="#{'篮球':'篮球','足球':'足球','排球':'排球'}" name="hobby" value="hobby"></s:checkboxlist>
在action中
声明变量并生成set get 方法 private String hobby[];用来接收传过来的值
在要回显的jsp中
<s:checkboxlist list="#{'篮球':'篮球','足球':'足球','排球':'排球'}" name="hobby" value="hobby"></s:checkboxlist>
就能直接显示刚才穿过的选项
=====================================================================
<label class="control-label" for="">权限项</label> <div class="controls"> <label class="checkbox inline"> <s:checkboxlist list="permissionPageList" listKey="nameKey" listValue="nameKey" value="selected" name="newPermissions"> </s:checkboxlist> </label> </div>
其中
list="permissionPageList"是action中的list,里面放置的是权限对象permissions,
listKey="nameKey" 这里的nameKey对应后台permissionPageList集合中permissions这个对象的的属性nameKey,listKey的值也是将要传入后台的值,传入后台后这个只放置newPermissions集合中;
listValue="nameKey" 是显示在页面上的内容;
name="newPermissions" 这是将勾选的选项的listKey="nameKey"传入后台;
value="selected" 这是回显的,就是默认的打钩的选项,selected是action中定义的List集合,用来存放listValue="nameKey"中的nameKey的值,把想要默认打钩的listValue="nameKey"的nameKey在action中加入selected集合即可