Użyj Z HashMap [duplikat]

To pytanie ma już odpowiedź tutaj:

Mam klasę Javy, która ustawia atrybut servlet do obiektu HashMap:

request.setAttribute("types", da.getSecurityTypes());

Gdzie request jest obiektem HttpServletRequest, a da.getSecurityTypes() zwraca obiekt HashMap.

Czy istnieje sposób, aby przejść przez kolekcję HashMap używając c: foreach lub inne tagi JSTL?

Myślałem:

 <c:forEach var="type" items="${types}">
                 ...
     </c:forEach>

Lub jeśli nie można tego zrobić, jak zrobić niestandardowy znacznik, aby to przetworzyć?

Uciekanie się do kodu Javy na mojej stronie JSP jest moją ostatnią deską ratunku i chciałbym wiedzieć, czy jest to możliwe z JSTL.

Dzięki, Jonas.

Author: jonasespelita, 2010-02-06

2 answers

Tak, to jest całkowicie dopuszczalne.

Kiedy używasz {[1] } do iteracji nad Map, każdy element w iteracji jest instancją Map.Entry. Więc podaj swój przykład:

<c:forEach var="type" items="${types}">
   Key is ${type.key}
   Value is ${type.value}
</c:forEach>
 103
Author: skaffman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-05 22:37:23

To działa, będziesz miał type.key i type.value do zabawy w pętli.

 5
Author: daveb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-05 22:37:12