使用 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 动态更改值。例子。你可以像这样循环遍历一个哈希映射
<%
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 循环遍历地图 [重复]的主要内容,如果未能解决你的问题,请参考以下文章