使用 JSTL 循环遍历地图 [重复]

Posted

技术标签:

【中文标题】使用 JSTL 循环遍历地图 [重复]【英文标题】:Loop through a Map with JSTL [duplicate] 【发布时间】:2011-02-20 08:35:01 【问题描述】:

我希望 JSTL 循环通过 Map<String, String> 并输出键的值及其值。

例如,我有一个Map<String, String>,它可以有任意数量的条目,我想使用 JSTL 循环遍历这个映射并输出键和它的值。

我知道如何使用密钥$myMap['keystring'] 访问值,但是如何访问密钥?

【问题讨论】:

相关:***.com/questions/2117557/… 【参考方案1】:

像这样:

<c:forEach var="entry" items="$myMap">
  Key: <c:out value="$entry.key"/>
  Value: <c:out value="$entry.value"/>
</c:forEach>

【讨论】:

其他人注意:不要尝试在forEach循环“param”中命名var 如何使用 forEach 动态更改值。例子。 键: 值:【参考方案2】:

你可以像这样循环遍历一个哈希映射

<%
ArrayList list = new ArrayList();
TreeMap itemList=new TreeMap();
itemList.put("test", "test");
list.add(itemList);
pageContext.setAttribute("itemList", list);                            
%>

  <c:forEach items="$itemList" var="itemrow">
   <input  type="text"  value="<c:out value='$itemrow.test'/>"/>
  </c:forEach>               

更多 JSTL 功能请看here

【讨论】:

不要使用脚本。他们很糟糕。 @tad 我也听说过。但为什么呢? @TJ- 作为一般规则,在您的模板中加入强大的逻辑没有什么好的理由;它们很难调试,它们混合了范式,并且可以产生意想不到的结果。此外,JSTL aready 提供了一种干净地迭代地图的工具:forEach 标记。 @tad 他显然在使用脚本来设置他的测试数据。这是一个非常好的答案 @jk:我同意。这里的反对票非常可笑。此外,scriptlet 可以产生意外结果的想法对我来说毫无意义。它们并不漂亮,但 1+1 总是等于 2,除非有一些我不知道的特定场景。

以上是关于使用 JSTL 循环遍历地图 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

java - 如何按顺序遍历地图[重复]

如何迭代在jstl中将地图作为字段的对象列表? [重复]

尝试用二维数组构建地图[重复]

添加了基于顺序值的 HashMap 循环[重复]

如何在 React 的地图中使用 for 循环 [重复]

Swift 3.0 地图似乎又迭代了 1 个循环 [重复]