我有一个java类,它将servlet属性设置为HashMap对象:
request.setAttribute("types", da.getSecurityTypes());
其中request
是HttpServletRequest对象,da.getSecurityTypes()
返回HashMap对象。
有没有办法使用c:foreach或其他一些JSTL标记来浏览HashMap集合?
我在想:
<c:forEach var="type" items="${types}">
...
</c:forEach>
或者如果无法完成,那么如何制作自定义标签来处理它呢?
在我的JSP页面中使用Java代码是我的最后手段,我想知道JSTL是否可以实现这一点。
谢谢, 纳斯。
答案 0 :(得分:109)
是的,这是完全可以接受的。
当您使用<c:forEach>
迭代Map
时,迭代中的每个项目都是Map.Entry
的实例。所以举个例子:
<c:forEach var="type" items="${types}">
Key is ${type.key}
Value is ${type.value}
</c:forEach>
答案 1 :(得分:5)
一切正常,您可以在循环中使用type.key
和type.value
。