2012-02-23 40 views
3

大家好我正在做Struts2应用程序的JSP领域的复选框列表。如何保留struts2的checkboxlist中的值?

代码在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"); 

存储输出对象受试者在数据库。它工作正常。 在表中有这样的字段CSC(真/假),ECE(真/假)。

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

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

欢迎您提供有关此任务的更多建议。提前致谢!!!

+0

如果我读它正确地你想在页面加载到自动检查? – 2012-02-23 02:56:01

+0

@ UmeshAwasthi:你是对的。自动检查页面加载。非常感谢。 – shiva 2012-02-23 04:38:23

回答

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}"/> 
+0

Awesome Umesh Awasthi。真的你的代码帮助我解决了这个checkboxlist选择。我在我的jsp中使用了以下内容:。非常感谢!!! – shiva 2012-02-23 04:34:35