Tengo un objeto de comando FaxForm
y contiene una lista de objetos FaxStatus
dentro de una propiedad faxStatusList
.Listas dinámicamente vinculantes con la etiqueta de formulario de Spring
public class FaxForm {
private List<FaxStatus> faxStatusList;
public void setFaxStatusList(List<FaxStatus> faxStatusList) {
this.faxStatusList = faxStatusList;
}
public List<FaxStatus> getFaxStatusList() {
return faxStatusList;
}
}
inicialmente tenían una página JSP que uniría los objetos realizando el siguiente:
<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>
Sin embargo, estoy tratando de encontrar la manera que podía hacer la unión sin el bucle foreach y el índice . Los ejemplos en el sitio web Spring muestran el enlace estableciendo la ruta al nombre de la lista. ¿Hay alguna forma de vincular las propiedades? He intentado esto pero falla:
<form:checkbox path="faxStatusList.faxStatus.selected"/>
<form:select path="faxStatusList.faxStatus.status" items="${esaFaxForm.statusOptions}"/>
El faxStatusList tiene un captador y el método de selección y las variables FaxStatus cada uno tiene propiedades de captador/definidor. Aparece el error "Propiedad no válida 'faxStatusList.faxStatus' de la clase de bean ..."
faxStatusList es una propiedad indexada. Entonces no puedes usar algo como faxStatusList.faxStatus. Use faxStatusList []. FaxStatus en su lugar. –
Me gusta su código actual como respuesta, ya que ofrece una gran flexibilidad. – Steve