Динамически связывающие списки с тегом формы 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.