直接ではありませんが、を使用しvarStatus
てのインスタンスをLoopTagStatus
のスコープに入れることができます<c:forEach>
。ループインデックスと、それがループの最初の反復であるか最後の反復であるかを把握するためのゲッターをいくつか提供します。
どのように意味があるのかわかり<c:if>
ませんが、実際にはコメント名とコメント率が同じサイズのリストが2つあり、コメントと同じインデックスの率のみを表示する必要があると思います。
<c:forEach items="${commentNames}" var="comment" varStatus="commentLoop">
${comment}
<c:forEach items="${rates}" var="rate" varStatus="rateLoop">
<c:if test="${commentLoop.index == rateLoop.index}">
${rate}
</c:if>
</c:forEach>
</c:forEach>
ただし、これは不器用です。インデックスで直接レートを取得する方がよいでしょう。
<c:forEach items="${commentNames}" var="comment" varStatus="commentLoop">
${comment}
${rates[commentLoop.index]}
</c:forEach>
とプロパティを使用してComment
オブジェクトを作成する方がはるかに優れています。name
rate
public class Comment {
private String name;
private Integer rate;
// Add/autogenerate getters/setters.
}
次のように使用できるようにします。
<c:forEach items="${comments}" var="comment">
${comment.name}
${comment.rate}
</c:forEach>
参照: