java - 使用 <c :forEach> with HashMap

标签 java jsp jstl

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

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>

关于java - 使用 <c :forEach> with HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2210907/

相关文章:

java - 找不到 R.layout - 应用名称。只有安卓布局

java - 帮我把这个 Java 翻译成 Scheme 让事情在我的脑海里进行

java - 为什么 Servlet.service() for servlet jsp 会抛出这个异常?

java - 使用 jQuery 根据 servlet 的返回值显示 div

mysql - jsp jSTL sql查询标签使用声明的变量?

jsp - 使用 JSTL 创建带有导航链接的菜单

Java 流求和

java - Seam 安全性和 Prettyfaces 登录后重定向到错误的 URL

java - 是否有办法关闭 Java EE 1.4 JSP 中的注释?

jsp - Spring mvc 使用复选框选择列表项