0

カウンターが2回実行されるかどうかを確認しようとしていました。したがって、映画のレビューが 2 回表示されないようにする必要があります。

しかし、レビュー/人の結果は空です。

<c:set var="counter" value="${0}"/>

<c:forEach items="${ reviews }" var="review">
    <c:forEach items="${ persons }" var="person">
        <c:if test="{ counter % 2 == 0}">
            <div class="review">
                <p>
                    <div class="user">
                        Benutzer: <c:out value="${ person.email }"></c:out>
                    </div>

                    <div class="stars">
                        Einzelbewertung: <c:out value="${ review.stars }"></c:out>
                    </div>

                    <div style="color: grey; font-size: 14px;">Meinung:</div>
                    <div class="reviewText">
                        <c:out value="${ review.text }"></c:out>
                    </div>
                </p>
            </div>
            <c:set var="counter" value="${counter + 1}" />

        </c:if>

    </c:forEach>
4

1 に答える 1

1

別のカウンターを使用する必要はありません。代わりにforEachタグのvarStatus.indexorを使用してください。varStatus.count詳しくは、 http://www.ibm.com/developerworks/java/library/j-jstl0318/を参照してください。

status.indexこのようなもの(各レビューはゼロから始まることに注意してください):

<c:forEach items="${ reviews }" var="review">
    <c:forEach items="${ persons }" var="person" varStatus="status">
        <c:if test="${ status.index % 2 == 0}">
            <div class="review">
                <p>
                    <div class="user">
                        Benutzer: <c:out value="${ person.email }"></c:out>
                    </div>

                    <div class="stars">
                        Einzelbewertung: <c:out value="${ review.stars }"></c:out>
                    </div>

                    <div style="color: grey; font-size: 14px;">Meinung:</div>
                    <div class="reviewText">
                        <c:out value="${ review.text }"></c:out>
                    </div>
                </p>
            </div>

        </c:if>

    </c:forEach>
</c:forEach>
于 2013-01-13T21:54:53.243 に答える