Java 使用Spring动态绑定列表';s表单标签

Java 使用Spring动态绑定列表';s表单标签,java,spring,dynamic-binding,Java,Spring,Dynamic Binding,我有一个命令对象FaxForm,它在faxStatusList属性中保存一个FaxStatus对象列表 public class FaxForm { private List<FaxStatus> faxStatusList; public void setFaxStatusList(List<FaxStatus> faxStatusList) { this.faxStatusList = faxStatusList; } public List&

我有一个命令对象
FaxForm
,它在
faxStatusList
属性中保存一个
FaxStatus
对象列表

public class FaxForm {
  private List<FaxStatus> faxStatusList;
  public void setFaxStatusList(List<FaxStatus> faxStatusList) {
    this.faxStatusList = faxStatusList;
  }
  public List<FaxStatus> getFaxStatusList() {
    return faxStatusList;
  }
}
公共类传真表单{
私有列表传真状态列表;
公共作废setFaxStatusList(列表faxStatusList){
this.faxStatusList=传真状态列表;
}
公共列表getFaxStatusList(){
返回传真状态列表;
}
}
我最初有一个JSP页面,通过执行以下操作绑定对象:

<c:forEach items="${esaFaxForm.faxStatusList}" var="item" varStatus="loop">
  <tr class="tableAltBackground">
    <td>
      <form:checkbox path="faxStatusList[${loop.index}].selected"/>
    </td>
    <td>
      <form:select path="faxStatusList[${loop.index}].status" items="${esaFaxForm.statusOptions}" onchange="checkThisBox(this);"/>
    </td>
    <td>
      <a href="${statusContUrl}?id=${item.id}&status=${item.status}" onclick="openFaxWindow('${viewFaxUrl}?id=${item.id}', ${loop.index});">${item.name}</a>
      <form:hidden path="faxStatusList[${loop.index}].name"/>
    </td>
    <td>
      <a href="${statusContUrl}?id=${item.id}&status=${item.status}" onclick="openFaxWindow('${viewFaxUrl}?id=${item.id}', ${loop.index});">${item.id}</a>
      <form:hidden path="faxStatusList[${loop.index}].id"/>
    </td>
  </tr>
</c:forEach>

然而,我正试图弄清楚如何在没有forEach循环和索引的情况下进行绑定。网站上的示例通过设置列表名的路径来显示绑定。有没有办法绑定属性?我尝试过这个方法,但失败了:

<form:checkbox path="faxStatusList.faxStatus.selected"/>
<form:select path="faxStatusList.faxStatus.status" items="${esaFaxForm.statusOptions}"/>


faxStatusList有一个getter和setter方法,FaxStatus变量都有getter/setter属性。我得到bean类的错误“Invalid property'faxStatusList.faxStatus…”

Spring表单标记有一个复选框。您可以按如下方式使用它自动进行绑定:

<form:checkboxes items="${faxStatusList}" path="faxStatusList" itemLabel="name" itemValue="id" delimiter="<br/>" onclick="yourOnClickMethodIfYouNeed(this);"/>


上面的代码段将显示用br标记分隔的复选框项目列表。对复选框状态所做的任何更改都将适当地反映在传真表单中。faxStatusList对象。

faxStatusList是一个索引属性。因此,您不能使用类似faxStatusList.faxStatus的内容。使用faxStatusList[].faxStatus。实际上,我喜欢您当前的代码作为答案,因为它提供了很大的灵活性。