c: forEach,在map上逆序迭代jsp

c: forEach, iterate in reverse order on map jsp

是否可以从地图的 "other end" 创建一个 forEach? 我有一个 servlet,可以将 xml 数据放入地图中,并在 jsp 中显示。但我需要它以相反的顺序显示,因为我希望插入 xml 文件的最新数据首先显示在我的页面上。

<c:forEach var="type" items="${fetchAllWorks.allWorks}">

${type.value.subject}

</c:url>">

首先,您的 Map 是否保持条目的插入顺序?因为最常用的 Map 实现 - HashMap - 没有。

其次,如果是这样,您需要通过调用 values() 方法来反转从 Map 获得的 Collection 值(为简洁起见,我将使用小脚本在这里,你不应该):

// add import directives for the List, ArrayList and Collections - all from the java.util package
<%
List<YourType> values = new ArrayList<>(yourMap.values());
Collections.reverse(values);
%>
<c:forEach var="type" items="${values}">
  ${type.subject}
</c:forEach>