Ho un oggetto comando FaxForm
e contiene un elenco di oggetti FaxStatus
all'interno di una proprietà faxStatusList
.Elenchi dinamici di binding con il tag modulo Spring
public class FaxForm {
private List<FaxStatus> faxStatusList;
public void setFaxStatusList(List<FaxStatus> faxStatusList) {
this.faxStatusList = faxStatusList;
}
public List<FaxStatus> getFaxStatusList() {
return faxStatusList;
}
}
inizialmente ho avuto una pagina JSP che legano gli oggetti eseguendo il seguente:
<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>
Tuttavia, sto cercando di capire come avrei potuto fare la rilegatura senza il ciclo foreach e l'indice . Gli esempi sul sito Web Spring mostrano l'associazione impostando il percorso del nome dell'elenco. C'è un modo per legare le proprietà? Ho provato questo ma non riesce:
<form:checkbox path="faxStatusList.faxStatus.selected"/>
<form:select path="faxStatusList.faxStatus.status" items="${esaFaxForm.statusOptions}"/>
Il faxStatusList ha un getter e metodo setter e le variabili FaxStatus ogni hanno proprietà getter/setter. Viene visualizzato l'errore "Proprietà non valida 'faxStatusList.faxStatus' di classe bean ..."
faxStatusList è una proprietà indicizzata. Quindi non è possibile utilizzare qualcosa come faxStatusList.faxStatus. Utilizzare faxStatusList []. FaxStatus. –
In realtà mi piace il vostro codice attuale come risposta, in quanto offre una grande flessibilità. – Steve