我在表单上的表中显示多条记录。每个表中的第一列是一个复选框,用于删除标记记录。
如果选中了复选框,则会将与复选框关联的字符串值返回到List<String>
中的表单。如果未选中任何复选框,则List将设置为null。
这样可行没有记录,或者有多条记录。但是如果有一条记录,那么当没有选中复选框时,值'false'将返回List<String>
而不是null。
我已经阅读过人们讨论过将复选框拦截器“uncheckedValue”设置为null的问题,但是我无法成功执行此操作或找到如何完成此操作的示例。这是怎么做到的?
在我的行动......
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等]
如果有多个记录而没有选中复选框,则idsToDelete = null
如果没有选中一个记录和复选框,则idsToDelete = [false]
答案 0 :(得分:0)
创建隐藏字段解决了这个问题。
<s:hidden name="__checkbox_idsToDelete"/>