我有一个列表 MyBean1
在请求范围内(它们的名称为 tests
)。 MyBean1
有一个类型为 Map<Integer, List<MyBean2>>
的参数,可通过方法调用 getMap()
访问。该 map 的键是从 1 到 6 的数字。 MyBean2
有一个方法getValue()
它返回一个字符串。
我需要将每个列表的值放入同一个表格单元格中。
我写了这样的东西:
<c:forEach var="test" items="${tests}">
// some stuff
<td><c:forEach var="bean" items="S{test.map[1]}">${bean.value} </c:forEach></td>
// repeat for keys to 2 to 6
</c:forEach>
但这似乎不起作用。我没有收到value
map 中键 1 处包含的列表的字段。
我做错了什么吗?
我使用 Spring MVC 作为 MVC 框架,我可以从中获取其他字段 test
变量。
谢谢。
最佳答案
参见EL access a map value by Integer key来解释为什么它不起作用。
如果您的映射是排序映射或 LinkedHashMap,则迭代其条目可能会起作用:
<td><c:forEach var="entry" items="${test.map}">
<c:forEach var="bean" items="${entry.value}">${bean.value}</c:forEach>
</c:forEach></td>
关于java - 如何在 JSTL 中访问包含列表的 Map 的内部元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7030075/