JSP中Map的第一个元素

时间:2016-01-19 21:00:55

标签: java jsp dictionary jstl

如何在jsp页面上从map获取第一个元素? Java代码:

Map<Long,MyObject> map = ......
model.addAttribute("statuses", map);

JSP代码:

<c:set var="myvalue" value="${statuses[0].value.myfield}"/> //error
<c:forEach var="status" items="${statuses}">
 ....
</c:forEach>

如何让第一个元素成为循环forEach?

4 个答案:

答案 0 :(得分:0)

我建议您在Java代码中进行修改而不是在JSP中进行修改,这被认为不是一个好主意,因为它会使您的JSP难以操作。如果您可以控制Java代码,则更容易。

在Java中:

model.addAttribute("status", map.get(0));

JSP:

<c:set var="myvalue" value="${status.myfield}"/> 

答案 1 :(得分:0)

尝试使用它将元素放入模型中:

   model.put("statuses", map);

并在jsp中检索数据:

  <c:set var="myvalue" value="${statuses[0].myfield}"/>

答案 2 :(得分:0)

如果要在地图中保持顺序,请使用TreeMap而不是HashMap。他们可以通过get(0)获得第一个元素;

答案 3 :(得分:0)

我们可以使用varStatus来识别地图中的第一个元素。

<c:forEach var="status" items="${statuses}" varStatus="_status" >
    <c:if test="${_status.count eq 1}">
        <c:set var="firstElement" value="${status}"></c:set> // Assigns the first element
    </c:if>
</c:forEach>

希望这会有所帮助..