我的请求范围中有MyBean1
列表(名称为tests
)。 MyBean1
的参数类型为Map<Integer, List<MyBean2>>
,可通过方法调用getMap()
访问。此映射的键是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>
但这似乎不起作用。我没有得到地图中包含在列表1中的value
字段。
我做错了吗?
我使用Spring MVC作为MVC框架,我可以从test
变量中获取其他字段。
谢谢。
答案 0 :(得分:1)
请参阅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>