Подтвердить что ты не робот

Используйте <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.

4b9b3361

Ответ 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 для воспроизведения в цикле.