Comment puis-je parcourir une HashMap
dans JSP?
<% HashMap counsortinges = MainUtils.getCounsortinges(l); %>
Tout comme vous le feriez dans un code Java normal.
for (Map.Entry entry : counsortinges.entrySet()) { Ssortingng key = entry.getKey(); Ssortingng value = entry.getValue(); // ... }
Cependant , les scriptlets (code Java brut dans les fichiers JSP, ces <% %>
choses) sont considérés comme une mauvaise pratique . Je recommande d’installer JSTL (déposez simplement le fichier JAR dans /WEB-INF/lib
et déclarez les taglibs nécessaires en haut de JSP). Il a une
qui peut parcourir entre autres les Map
s. Chaque itération vous donnera un Map.Entry
qui a à son tour des getKey()
et getValue()
.
Voici un exemple de base:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> Key = ${entry.key}, value = ${entry.value}
Ainsi, votre problème particulier peut être résolu comme suit:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Vous avez besoin d’un Servlet
ou d’un ServletContextListener
pour placer les ${counsortinges}
dans la scope souhaitée. Si cette liste est supposée être basée sur une requête, utilisez le doGet()
Servlet
:
protected void doGet(HttpServletRequest request, HttpServletResponse response) { Map counsortinges = MainUtils.getCounsortinges(); request.setAtsortingbute("counsortinges", counsortinges); request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response); }
Ou si cette liste est supposée être une constante à l’échelle de l’application, utilisez alors contextInitialized()
pour qu’elle ne soit chargée qu’une seule fois et conservée en mémoire:
public void contextInitialized(ServletContextEvent event) { Map counsortinges = MainUtils.getCounsortinges(); event.getServletContext().setAtsortingbute("counsortinges", counsortinges); }
Dans les deux cas, les counsortinges
seront disponibles en EL par ${counsortinges}
.
J’espère que cela t’aides.
En fonction de ce que vous voulez accomplir dans la boucle, effectuez une itération sur l’un d’eux à la place:
counsortinges.keySet()
counsortinges.entrySet()
counsortinges.values()