gpt4 book ai didi

jsp - 如何直接在 map 的值上使用 jSTL foreach?

转载 作者:行者123 更新时间:2023-12-04 01:16:48 27 4
gpt4 key购买 nike

我尝试了以下令人惊讶的不起作用的方法,看起来 .values 在 jSTL 中根本不起作用:

<c:forEach var="r" items="${applicationScope['theMap'].values}">

映射是这样定义的(后来保存到 ServletContext 中):
Map<Integer, CustomObject> theMap = new LinkedHashMap<Integer, CustomObject>();

如何让这个工作?我实际上真的很想避免修改 foreach 循环内部的内容。

最佳答案

所以你想迭代 map 值? Map没有 getValues()方法,所以你的尝试不起作用。 <c:forEach>给出 Map.Entry 回到每次迭代,这反过来又是 getKey()getValue()方法。所以应该做以下事情:

<c:forEach var="entry" items="${theMap}">
Map value: ${entry.value}<br/>
</c:forEach>

从 EL 2.2 开始,有了对调用非 getter 方法的新支持,您只需调用 Map#values()直接地:
<c:forEach var="value" items="${theMap.values()}">
Map value: ${value}<br/>
</c:forEach>

也可以看看:
  • How to loop over a Map using <c:forEach> ?
  • 关于jsp - 如何直接在 map 的值上使用 jSTL foreach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6164560/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com