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类型保持一致,可还是弄不明白
展开
 我来答
h768446359
2016-09-16 · TA获得超过411个赞
知道小有建树答主
回答量:243
采纳率:100%
帮助的人:190万
展开全部

你用字符串解析回显?这太麻烦了,是不是意味着前台页面中要进行大量判断和操作?

你的意思是多选后,提交,进行啥啥操作,再回到页面,保持之前的选择状态?

这样的话,你需要定义一个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中可以取到选中的框,甚至可以减少选中的值,然后在转发回页面,即可实现选中回显!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式