如何访问包含JSTL中列表的Map的内部元素?

时间:2011-08-11 17:13:05

标签: java jsp jstl

我的请求范围中有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变量中获取其他字段。

谢谢。

1 个答案:

答案 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>