struts2的checkboxlist实现多项选择,回显时value值怎么填,?
我用的是不同问题用“!”分割,多选答案用“,”分割,例如1,3,4,!2,4!3,5!1,2。就是第一题选择第1、3、4项答案,第二题就是选择第2、4答案。搜索知道val...
我用的是不同问题用“!”分割,多选答案用“,”分割,例如1,3,4,!2,4!3,5!1,2。就是第一题选择第1、3、4项答案,第二题就是选择第2、4答案。
搜索知道value要和key类型保持一致,可还是弄不明白 展开
搜索知道value要和key类型保持一致,可还是弄不明白 展开
1个回答
展开全部
你用字符串解析回显?这太麻烦了,是不是意味着前台页面中要进行大量判断和操作?
你的意思是多选后,提交,进行啥啥操作,再回到页面,保持之前的选择状态?
这样的话,你需要定义一个list来存放多选的内容(专门的list,因为多选的选项必然也是),
打个比方,页面显示列表是一个list,list里面放的是我们自定义类User:
public class User{
//假设这里存放所有habbit
private Map habbits;
// 这里存放选中的habbit
private String[] backhabbits;
//省略get,set
}
即habbtis就是要构成checklist的数据:(假设此页面跳转时值栈中有user对象!)
<s:checkboxlist name="user.backhabbits" list="#user.habbits" value="#user.backhabbits" listKey="key" listValue="value />
这样,使用list指定数据,使用value指定哪些选中了,还有listKey指定<input>的value,listValue指定<input>后面显示的文字!!注意,list一般是个Map集合变量!然后再action中定义
private User user;即可通过user.backhabbits为name属性来获取!再转发回去,(user字段自动回显)这个页面又有value指定选中项,故可以成功!action代码大概为:
public class UserAction{
private User user;//省略get,set
//此方法为aciton执行的方法
public String execute(){
System.out.println(user.getBackhabbits());
//假设此action中result的success已经设置为刚才那个页面
return "success";
}
}
这样,再action中可以取到选中的框,甚至可以减少选中的值,然后在转发回页面,即可实现选中回显!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询