Spring non permette di stampare il contenuto di una lista e collegarlo ad un campo di input.
Un escamotage è usare il tag html <input> al posto di <form:input>:
[html]
<input name=”order.paymentTransactions[0].payerEmail” />
[/html]
dove [0] sarà una variabile che indica la posizione dell’array da stampare.
Non si può usare direttamente il tag di spring
[html]<form:input path=”order.paymentTransactions[0].payerEmail” name=”payerEmail”/>[/html]
perchè verra decodificato in:
[html]<input name=”order.paymentTransactions0.payerEmail” />
[/html]
Di seguito un esempio completo in cui stampiamo e rendiamo modificabili una lista di contatti di persone (contactForm.contacts), associandoli ai rispettivi campi:
[html]
<c:forEach items=”${contactForm.contacts}” var=”contact” varStatus=”status”>
<tr>
<td align=”center”>${status.count}</td>
<td><input name=”contacts[${status.index}].firstname” value=”${contact.firstname}”/></td>
<td><input name=”contacts[${status.index}].lastname” value=”${contact.lastname}”/></td>
<td><input name=”contacts[${status.index}].email” value=”${contact.email}”/></td>
<td><input name=”contacts[${status.index}].phone” value=”${contact.phone}”/></td>
</tr>
</c:forEach>
[/html]