使用JSTL循环映射

Dea*_*ean 122 loops jstl map

我希望JSTL循环通过a Map<String, String>并输出键的值和它的值.

例如,我有一个Map<String, String>可以有任意数量的条目,我想使用JSTL遍历这个地图并输出密钥和它的值.

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

cle*_*tus 271

像这样:

<c:forEach var="entry" items="${myMap}">
  Key: <c:out value="${entry.key}"/>
  Value: <c:out value="${entry.value}"/>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

  • 别人注意:不要试图在forEach循环"param"中命名var (16认同)

小智 5

您可以像这样遍历哈希映射

<%
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>               
Run Code Online (Sandbox Code Playgroud)

有关更多JSTL功能的信息,请点击此处

  • 不要使用小标题。他们很坏。 (34认同)
  • @tad,他显然正在使用Scriplets来设置他的测试数据。这是一个很好的答案 (14认同)
  • @ TJ-通常,没有充分的理由在模板中添加强大的逻辑;它们很难调试,它们混合了范式,并且可以产生意想不到的结果。此外,JSTL Aready提供了一种在地图上进行清晰迭代的工具:forEach标记。 (7认同)
  • @jk:我同意。这里的票很荒谬。同样,脚本脚本可以产生意外结果的想法对我来说也没有意义。它们不是很漂亮,但是1 + 1总是等于2,除非有一些我不知道的特定情况。 (7认同)