1

私はこのロジックをほとんどどこでも検索しましたが、私は素晴らしい仕事をしていないと確信しているため、この質問をしています。

Arraylist があり、次の形式で反復して表示する必要があります

ユーザー
1 ユーザー2 ユーザー3 ユーザー4 ユーザー5 ユーザー6 ユーザー7 ユーザー
8 ユーザー9

通常の JSP スクリプトレットを使用してこれを行うことができますが、JSTL を使用することはできません。JSTL を使用してみましたが、リストからいくつかのエントリがスキップされます。これが私のコードです

    <tr>
        <c:forEach var="party" items="${partiesList}">
        <c:set var="ctr" value="${ctr+1}" scope="page"/>
        <c:choose>
        <c:when test="${ctr le 3}">
            <td>
                <figure>
                    <img src="images/${party.avatarUrl}" onclick="showHide('','${party.screenName}')" class="avaimg" alt="${party.screenName}">
                    <figcaption><spring:message code="user.${party.screenName}" text="${party.screenName}"/></figcaption>
                </figure>
            </td>
        </c:when>
        <c:otherwise>
    </tr>
    <c:set var="ctr" value="0" scope="page"/>
    </c:otherwise>
    </c:choose>
    </c:forEach>

どんな助けでも大歓迎です。

前もって感謝します

4

1 に答える 1

0

これを行うには、varStatus属性とモジュロ演算子 ( %) を使用します。

<table>
  <c:forEach var="party" items="${partiesList}" varStatus="status">
    <c:if test="${status.index % 3 == 0}"><tr></c:if>
    <td>${status.index}</td>
    <c:if test="${status.index % 3 == 2}"></tr></c:if>
  </c:forEach>
</table>

varStatusLoopTagStatusオブジェクトを返します。index

反復の現在のラウンドのインデックス。基礎となる配列、java.lang.Collection、またはその他の型のサブセットに対して反復が実行されている場合、返されるインデックスは基礎となるコレクションに関して絶対的です。インデックスは 0 ベースです。

モジュロ演算子を使用して、新しい行を開始または閉じる必要があるかどうかを確認できます。


別のアプローチは、リストをループして番号なしリストとして出力し、CSS を使用して希望どおりにスタイルを設定することです。それが私がそれを解決した方法です。CSS がどのように見えるかの例:

ul.my-class { overflow: hidden; width: 600px; }
ul.my-class li { float: left; width: 200px; }
于 2012-09-23T09:47:25.387 に答える