Con un ciclo forEach vorrei creare celle di tabella (per una riga) mentre ogni cella contiene un campo di input di un modulo. Il numero di celle di una tabella è sempre corretto (12). Questo in realtà non è un problema. Tuttavia, ecco la sfida: forEach dovrebbe anche inserire un numero variabile di valori predefiniti nei campi di input che devono essere ottenuti da una mappa (lunga, doppia).Come utilizzare la variabile index di un ciclo JSTL forEach per accedere a una voce della mappa?
Questa è la mia (semplificato) tentativo:
<c:forEach var="number" begin="1" end="12" >
<td>
<input type="text" value="${requestScope.aMapWithData[number]}" />
</td>
</c:forEach>
Ma questo non mostra alcun valore dalla mappa nei campi di immissione. Credo che il problema è che "numero" è di tipo String e non Long. Quindi mi chiedo se questo problema può essere risolto senza l'uso di scriptlet.
Vedere [questo thread] (http://stackoverflow.com/questions/924451/jstl-access-a-map-value-by-key). Soprattutto la risposta accettata, e [questo] (http://stackoverflow.com/a/5474399/1344008) – npe
Thx per il suggerimento! Il trucco con il cast di tipo implicito funziona molto bene: value = "$ {requestScope.aMapWithData [numero + 0]}" – mvk