嗨,我正在为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");
将输出对象主题存储在数据库中。它工作得很好。
表中有csc(true/false)、ece(true/false)这样的字段。
现在我想保留像数据库值一样的复选框列表选项。如果字段为true,则必须在selected中,如果字段为false,则应在jsp中取消选择。
所以如何从数据库值中保留复选框列表中的值。如果是单个复选框,则可以轻松设置值字段。如果是列表框,如何继续。
欢迎对这项任务提出更多建议。提前谢谢!!!
最佳答案
一个简单的解决方案是创建两个列表(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}"/>