我有一个jsp页面,它接收这种类型的HashMap对象:
Map<Long, Map<String, Object>>
。
此地图的示例如下:
foo = {1 = {id=1, response="someText"}, 2={id=99, response="random"}};
我试图在foo中迭代两个地图的内容,如下所示:
<c:forEach items="${fooMap.content}" var="outerMap">
<c:forEach items="${outerMap.value}" var = "innerMap">
<p>${innerMap.response}</p>
</c:foreach>
</c:forEach>
但是这会抛出在类型java.util.HashMap上找不到“属性'响应'..... 有人请告诉我我做错了什么吗?
我知道我可以使用Map.EntrySet访问innerMap的内容。但我想使用特定的密钥访问该值。
答案 0 :(得分:2)
${outerMap.value}
返回Map<String, Object>
,其中一个条目具有“响应”作为键。所以你需要从那里直接得到它,而不是在${innerMap}
中迭代它的入口集。
<c:forEach items="${fooMap.content}" var="outerMap">
<p>${outerMap.value.response}</p>
</c:forEach>
(更笨拙)替代方法是检查${innerMap}
输入键:
<c:forEach items="${fooMap.content}" var="outerMap">
<c:forEach items="${outerMap.value}" var="innerMap">
<c:if test="${innerMap.key == 'response'}">
<p>${innerMap.value}</p>
</c:if>
</c:foreach>
</c:forEach>
你现在还能把头包住吗? :)