2017-10-13 80 views
0

我在一個表的窗體上顯示多個記錄。每個表中的第一列是一個複選框,用於刪除標誌記錄。struts2的複選框返回「假」和零列出<String>

如果複選框被選中,則返回用的複選框在List<String>關聯回形式的字符串值。如果未選中複選框,則列表將設置爲空。

能正常工作是沒有記錄,或者有多個記錄。但是如果有一條記錄,當沒有選中複選框時,值'false'返回到List<String>而不是null。

我已閱讀,人們已經討論設置複選框攔截「uncheckedValue」爲空,但我一直沒能成功地做到這一點還是找到如何做到這一點的例子。這是如何完成的?

在我的行動....

private List<String> idsToDelete; 
public List<String> getIdsToDelete() { 
    return idsToDelete; 
} 

public void setIdsToDelete(List<String> idsToDelete) { 
    this.idsToDelete = idsToDelete; 
} 

在我的JSP ...

<s:iterator value="adjustmentData" status="rowStatus"> 
    <tr> 
    <td> 
     <s:checkbox fieldValue="%{transactionId}" 
      name="idsToDelete" 
      class="deleteCheckbox"> 
     </s:checkbox> 

如果沒有數據,idsToDelete = NULL

如果有記錄和複選框選中,idsToDelete = [00200027,00200028,等]

如果存在多個記錄和沒有複選框ç hecked,idsToDelete = NULL

如果有一個記錄和複選框未選中,idsToDelete = [虛假]

+1

https://stackoverflow.com/q/16460923/1700321 –

回答

0

創建一個隱藏字段解決的問題。

<s:hidden name="__checkbox_idsToDelete"/>