2012-02-23 43 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