J'ai une classe Java qui définit un attribut de servlet sur un objet HashMap:
request.setAttribute("types", da.getSecurityTypes());
où request
est un objet HttpServletRequest et da.getSecurityTypes()
renvoie un objet HashMap.
Existe-t-il un moyen de parcourir la collection HashMap en utilisant c: foreach ou d'autres balises JSTL?
Je pensais:
<c:forEach var="type" items="${types}">
...
</c:forEach>
Ou si cela ne peut pas être fait, comment créer une balise personnalisée pour traiter cela?
Recourir à Java dans ma page JSP est mon dernier recours et je voudrais savoir si cela est possible avec JSTL.
Merci, Jonas.
Oui, c'est parfaitement acceptable.
Lorsque vous utilisez <c:forEach>
pour itérer sur un Map
, chaque élément de l'itération est une instance de Map.Entry
. Donc, étant donné votre exemple:
<c:forEach var="type" items="${types}">
Key is ${type.key}
Value is ${type.value}
</c:forEach>
Cela fonctionne, vous aurez type.key
et type.value
pour jouer en boucle.