有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用键值访问jsp中Map<Long,Map<String,Object>>的内容

我有一个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上找不到的“属性“response”。。。。。 有人能告诉我我做错了什么吗

我知道我可以使用Map访问innerMap的内容。入口设置。但是我想使用特定的键访问该值


共 (1) 个答案

  1. # 1 楼答案

    ${outerMap.value}返回一个Map<String, Object>,其中一个条目的“response”作为键。因此,您需要直接从那里获得它,而不是在${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>
    

    你现在还能把头绕在它身上吗?:)