以下のコードは最後のアイテムをチェックしますが、最後から 2 番目のアイテムをチェックする必要があります。これを達成するためにカウンターを使用できますが、より良い方法はありますか?
<c:if test="${status.last}">
1 つのアプローチ:
//looping through a list called "myList"
<c:if test="${fn:length(myList)==(status.count+1)}">
このコードは、反復ごとにリストのサイズを計算することに注意してください。より良いアプローチは、サイズを変数に入れて、それを status.count と比較することです。
JacobMは正しい考えを持っていますが、私はそれがもっとこのようなものだと思います。
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:forEach var="current" varStatus="status" items="${list}">
<c:if test="${(fn:length(list) - 1) == status.count}" >
The next to last item is ${current}
</c:if>
</c:forEach>
また
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="nextToLast" value="${fn:length(list) - 1}" />
<c:forEach var="current" varStatus="status" items="${list}">
<c:if test="${nextToLast == status.count}" >
The next to last item is ${current}
</c:if>
</c:forEach>