Как сохранить значения в чекбокс-листе struts2? - PullRequest
3 голосов
/ 23 февраля 2012

Привет всем, я делаю список флажков для поля в JSP приложения Struts2.

Код в 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");  

Сохранение выходного объекта subject в базе данных.Работает нормально.В таблице есть поля CSC (true / false), ECE (true / false) и тому подобное.

Теперь я хочу сохранить опции checkboxlist как значения базы данных.Если поле true, оно должно быть в SELECTED, если поле false, оно должно быть UNSELECTED в Jsp.

Так как сохранить значения в checkboxlist из значений базы данных.Если это один флажок, можно легко установить значение поля.Если это поле списка, как действовать.

Добро пожаловать на дополнительные предложения для этой задачи.Заранее спасибо !!!

1 Ответ

4 голосов
/ 23 февраля 2012

Одно простое решение - создать два списка (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}"/>
...