Ich habe eine Java Klasse, die ein Servlet-Attribut auf ein HashMap-Objekt setzt:
request.setAttribute("types", da.getSecurityTypes());
dabei ist request
ein HttpServletRequest-Objekt und da.getSecurityTypes()
gibt ein HashMap-Objekt zurück.
Gibt es eine Möglichkeit, die HashMap-Auflistung mit c: foreach oder anderen JSTL-Tags zu durchsuchen?
Ich dachte:
<c:forEach var="type" items="${types}">
...
</c:forEach>
Oder wenn es nicht möglich ist, wie würde man ein benutzerdefiniertes Tag erstellen, um dies zu verarbeiten?
Das Zurückgreifen auf Java - Code auf meiner JSP-Seite ist mein letzter Ausweg, und ich möchte wissen, ob dies mit JSTL möglich ist.
Danke, Jonas.
Ja, das ist völlig akzeptabel.
Wenn Sie <c:forEach>
Um über ein Map
zu iterieren, ist jedes Element in der Iteration eine Instanz von Map.Entry
. Geben Sie also Ihr Beispiel:
<c:forEach var="type" items="${types}">
Key is ${type.key}
Value is ${type.value}
</c:forEach>
Es funktioniert, Sie haben type.key
und type.value
zum Spielen in der Schleife.