struts2复选框返回'false',null返回List <string>

时间:2017-10-13 19:36:30

标签: javascript java struts2

我在表单上的表中显示多条记录。每个表中的第一列是一个复选框,用于删除标记记录。

如果选中了复选框,则会将与复选框关联的字符串值返回到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]

1 个答案:

答案 0 :(得分:0)

创建隐藏字段解决了这个问题。

<s:hidden name="__checkbox_idsToDelete"/>