Ik heb een Java-klasse die een servlet-attribuut instelt op een HashMap-object:
request.setAttribute("types", da.getSecurityTypes());
waar request
een HttpServletRequest-object is en da.getSecurityTypes()
een HashMap-object retourneert.
Is er een manier om door de HashMap-verzameling te gaan met c:foreach of andere JSTL-tags?
Ik dacht:
<c:forEach var="type" items="${types}">
...
</c:forEach>
Of als het niet kan, hoe zou je dan een aangepaste tag maken om dit te verwerken?
Mijn toevlucht nemen tot Java-code op mijn JSP-pagina is mijn laatste redmiddel en ik zou graag willen weten of dit mogelijk is met JSTL.
Bedankt,
Jonas.
Antwoord 1, autoriteit 100%
Ja, dit is volkomen acceptabel.
Als je <c:forEach>
gebruikt om een Map
te herhalen, is elk item in de iteratie een instantie van Map.Entry
. Dus gezien jouw voorbeeld:
<c:forEach var="type" items="${types}">
Key is ${type.key}
Value is ${type.value}
</c:forEach>
Antwoord 2, autoriteit 5%
Het werkt, je hebt type.key
en type.value
om mee te spelen in de loop.