如何在struts2的checkboxlist中保留值?

时间:2012-02-23 01:59:23

标签: database struts2 checkboxlist

大家好我正在为Struts2应用程序的JSP中的一个字段做复选框列表。

JSP中的代码:

<s:checkboxlist list="subjectList" name="subjects"/>

在行动中:

I have used some if/else condition to get the selected checkbox values in Action class as follows.

if(this.getSubjects().trim().contains("CSC"))
        subject.setCSC("true");
    else
        subject.setCSC("false");
if(this.getSubjects().trim().contains("ECE"))
        subject.setECE("true");
    else
        subject.setECE("false");  

在数据库中存储输出对象主题。它工作正常。 在Table中有字段CSC(真/假),ECE(真/假)等。

现在我想保留checkboxlist选项,就像数据库值一样。如果该字段为true,则必须处于SELECTED状态,如果该字段为false,则应该在Jsp中为UNSELECTED。

那么如何从数据库值中保留checkboxlist中的值。如果是单个复选框,则可以轻松设置值字段。如果是列表框,则如何继续。

欢迎提出更多有关此任务的建议。在此先感谢!!!

1 个答案:

答案 0 :(得分:4)

一个简单的解决方案是创建两个列表(arrayList或任何基于集合的列表),其中一个应包含复选框的所有值,可用于在JSP中创建复选框,其他列表应包含只有那些被选中的值。假设你需要像

这样的东西
public class MyAction extends ActionSupport{

   List<String> checkBoxList;
   List<String> selectedCheckBoxList
   // getters and setters 

    public String execute() throws exception{

       checkBoxList=getAllCheckBoxes();  // fill this will all list values selected and unselected
        selectedCheckBoxList=selectedCheckBoxes(); // only selected
        return SUCCESS;
   }

}

在你jsp所有你需要这样做

<s:checkboxlist list="%{checkBoxList}" name="checkBoxList" value="%{selectedCheckBoxList}"/>