Spring – Form, Lista di Input

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]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *