以下代码不起作用:

    <c:forEach items="${orderNumByDepartment}" var="map2">
        <c:forEach items="${map2.value }" var="foodName2foodNum">

            <tr>
                    <td>${map2.key }</td>
                    <td>${foodName2foodNum.key }</td>
                    <td>${foodName2foodNum.value }</td>
            </tr>

        </c:forEach>
    </c:forEach>

orderNumByDepartment is Map<String, List<Map<String, Integer>>> type.


你能告诉我为什么我不能获得第二和第三个值吗(foodName2foodNum.key / foodName2foodNum.value)

最佳答案

foodName2foodNum是整个地图,而不是单个地图条目,因此没有键和值。
如果要从Map条目中获取String键和Integer值,请尝试在map2.value循环内创建另一个c:forEach循环。例如。

<c:forEach items="${foodName2foodNum}" var="thirdLoopVar">
  <p>${thirdLoopVar.key}</p>
  <p>${thirdLoopVar.value}</p>
</c:forEach>

关于java - jSTL迭代器映射和列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9688226/

10-11 04:32