2013-07-25 29 views
1

我將用checkboxlist創建一個列表。對於那些我用下面的代碼:如何檢索struts2複選框列表的值

<s:form action="accept" namespace="/manager/course"> 
    <s:checkboxlist list="courseRequests" name="acceptList" listValue="studentNickname" listKey="studentId" theme="checkbox-fix"/> 
    <s:url action="accept" namespace="/manager/course" var="accList" /> 
    <s:a href="%{accList}"><s:text name="Accept"/> </s:a> 
</s:form> 

它做工精細一個創建一個複選框列表,你可以看到它的PIC在以下幾點:
enter image description here

,這是由上面的代碼生成的HTML代碼:

<form id="accept" name="accept" action="/ESA/manager/course/accept.action" method="post"> 
    <table class="wwFormTable"> 
    <table class="gradienttable"> 
    <tr> 
     <th class="row"><p>Row</p></th> 
     <th style="width: 240px;"><p>Student</p></th> 
     <th ><p>Accept</p></th> 
    </tr> 
    <tr> 
     <td id="row"><p><label>1</label></p></td> 
     <td style="width:250px;"><p> 
       <label for="acceptList-1" class="checkboxLabel">Mansour Barzegar</label> 
      </p></td> 
     <td style="text-align:center;"><p> 
       <input type="checkbox" name="acceptList" value="5" id="acceptList-1"    </p></td> 
    </tr> 
    <tr> 
     <td id="row"><p><label>2</label></p></td> 
     <td style="width:250px;"><p> 
       <label for="acceptList-2" class="checkboxLabel">Ali Mahmoudi</label> 
      </p></td> 
     <td style="text-align:center;"><p> 
       <input type="checkbox" name="acceptList" value="6" id="acceptList-2"    </p></td> 
    </tr> 
    <tr> 
     <td id="row"><p><label>3</label></p></td> 
     <td style="width:250px;"><p> 
       <label for="acceptList-3" class="checkboxLabel">Masih Zare</label> 
      </p></td> 
     <td style="text-align:center;"><p> 
       <input type="checkbox" name="acceptList" value="7" id="acceptList-3"    </p></td> 
    </tr> 
    </table> 
    <a href="/ESA/manager/course/accept.action">Accept</a> 
    </table> 
</form> 

在操作I類試圖通過下面的代碼以檢索seleced複選框值:

private int[] acceptList; 
public void setAcceptList(int[] acceptList){ 
    this.acceptList=acceptList; 
} 

和其他幾個代碼,但我都說我得到null。 我使用錯誤的代碼嗎?

在您的標記
+2

在您需要發送它的代碼檢索它之前。 –

+0

@AleksandrM開放。我認爲我的思想被絞死:D。我被嘗試忘記了。 –

回答

2

,這樣做:

<input type="checkbox" name="thename" id="checkbox_id1" value="value1" /> 
<input type="checkbox" name="thename" id="checkbox_id2" value="value2" /> 

在你的行動(或物體)做到這一點:

// action/object code... 
Set<String> cbox = new HashSet(); 

public void setThename(String[] thenames) { 
    for (String thename : thenames) { 
     cbox.add(thename); 
    } 
} 
// action/object code... 

通知複選框名二傳手的名字,例如匹配元素名稱== someName和方法== setSomeName

同樣適用於集<整數>,但是你使用int [] thenames作爲參數。您也可以使用Integer []名稱作爲參數。


測試輸出:

if (cbox != null) { 
    for (String s : cbox) { 
    log.info(s); 
    } 
} 

http://struts.apache.org/release/2.2.x/docs/using-checkboxes.html