Используйте <c: forEach> с помощью HashMap
У меня есть класс java, который устанавливает атрибут сервлета для объекта HashMap:
request.setAttribute("types", da.getSecurityTypes());
где request
- объект HttpServletRequest, а da.getSecurityTypes()
возвращает объект HashMap.
Есть ли способ пройти через коллекцию HashMap, используя c: foreach или некоторые другие теги JSTL?
Я думал:
<c:forEach var="type" items="${types}">
...
</c:forEach>
Или, если это невозможно сделать, как создать собственный тег для обработки этого?
Прибегать к Java-коду на моей странице JSP - это мое последнее средство, и я хотел бы знать, возможно ли это с помощью JSTL.
Спасибо,
Jonas.
Ответы
Ответ 1
Да, это вполне приемлемо.
Когда вы используете <c:forEach>
для итерации по Map
, каждый элемент в итерации является экземпляром Map.Entry
. Поэтому, учитывая ваш пример:
<c:forEach var="type" items="${types}">
Key is ${type.key}
Value is ${type.value}
</c:forEach>
Ответ 2
Он работает, вы будете иметь type.key
и type.value
для воспроизведения в цикле.