使用<c:forEach>和HashMap

我有一个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。

谢谢,乔纳斯。

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

当您使用<c:forEach>迭代Map ,迭代中的每个项目都是Map.Entry一个实例。 所以给你的例子:

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

它的工作原理,你将有type.keytype.value在循环播放。