Mit einer ForEach-Schleife möchte ich Tabellenzellen (für eine Zeile) erstellen, während jede Zelle ein Eingabefeld eines Formulars enthält. Die Anzahl der Tabellenzellen ist immer fest (12). Das ist eigentlich kein Problem. Hier kommt jedoch die Herausforderung: Das forEach sollte auch eine variable Anzahl von Default-Werten in die Eingabefelder eintragen, die von einer Map (Long, Double) erhalten werden müssen.Wie verwende ich die Indexvariable einer JSTL forEach-Schleife, um auf einen Map-Eintrag zuzugreifen?
Dies ist mein (vereinfacht) Versuch:
<c:forEach var="number" begin="1" end="12" >
<td>
<input type="text" value="${requestScope.aMapWithData[number]}" />
</td>
</c:forEach>
Aber dies zeigt keinen Wert aus der Karte in den Eingabefeldern. Ich schätze das Problem ist, dass "Nummer" vom Typ String und nicht Long ist. Ich frage mich also, ob dieses Problem gelöst werden kann, ohne Skriptlets zu verwenden.
See [Dieses Thema] (http://stackoverflow.com/questions/924451/jstl-access-a-map-value-by-key). Vor allem die akzeptierte Antwort, und [diese] (http://stackoverflow.com/a/5474399/1344008) – npe
Thx für den Hinweis! Der Trick mit der impliziten Typumsetzung funktioniert sehr gut: Wert = "$ {requestScope.aMapWithData [Nummer + 0]}" – mvk