将 <c:forEach> 与 HashMap 结合使用

2022-08-31 17:28:53

我有一个java类,它将servlet属性设置为HashMap对象:

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

其中 是一个 HttpServletRequest 对象,并返回一个 HashMap 对象。requestda.getSecurityTypes()

有没有办法使用c:foreach或其他一些JSTL标签来浏览HashMap集合?

我在想:

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

或者,如果无法完成,如何创建自定义标记来处理此问题?

在我的JSP页面中使用Java代码是我最后的手段,我想知道JSTL是否可能这样做。

谢谢 乔纳斯


答案 1

是的,这是完全可以接受的。

当您 用于循环访问 时,迭代中的每个项都是 的实例。所以以你的例子为例:<c:forEach>MapMap.Entry

<c:forEach var="type" items="${types}">
   Key is ${type.key}
   Value is ${type.value}
</c:forEach>

答案 2

它有效,您将拥有并在循环中玩。type.keytype.value