Динамически связывающие списки с тегом формы Spring

у меня есть объект команды FaxForm и он содержит список FaxStatus объекты внутри faxStatusList собственность.

public class FaxForm {
  private List<FaxStatus> faxStatusList;
  public void setFaxStatusList(List<FaxStatus> faxStatusList) {
    this.faxStatusList = faxStatusList;
  }
  public List<FaxStatus> getFaxStatusList() {
    return faxStatusList;
  }
}

у меня изначально была страница 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. Я получаю ошибку "неверный faxStatusList собственность '.faxStatus ' бобового класса..."

1 ответов


Весенняя форма теги и тег чекбоксы - тег. Вы можете использовать его следующим образом, чтобы сделать автоматическую привязку:

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

приведенный выше фрагмент отобразит список элементов флажка, разделенных тегом br. Любые изменения состояния чекбоксов отразится в вашем FaxForm. объект faxStatusList.