簡體   English   中英

JSTL打破循環

[英]JSTL Break out of loop

我正在嘗試從我的朋友列表中檢索20條記錄,其名稱以“ J”開頭。 但是,我意識到JSTL沒有中斷。 因此,我嘗試使用計數來跟蹤記錄。 我遇到錯誤“ PWC6031:未終止的<c:set標簽”

<c:set var="count" value="0" scope="page">
    <c:forEach items="${friendsList}" var="user">
        <c:if test="${count < 20}">
            <c:set var="string1" value="${fn:substring(user.name, 0, 1)}" />
            <c:if test="${fn:startsWith(string1,'J')}">
                <tr>
                <td><c:out value="${user.name}" /></td>
                <td><img src='https://graph.facebook.com/<c:out value="${user.id}"/>/picture' />
                </td>
            </tr>
            </c:if>
        </c:if>
        <c:set var="count" value="${count + 1}" scope="page"/>
    </c:forEach>

有沒有一種方法可以從count變量中檢索值? 如果不是,是否有其他方法可以使我擺脫困境,實現自己想要的目標? 謝謝。

解決了我遇到的錯誤后,我設法利用count變量列出了我想要的內容。 我在原始編碼中混合了“計數”編碼的順序。 這是我現在正在工作的內容,感謝大家的幫助!

<c:set var="count" value="0" scope="page" />
    <c:forEach items="${friendsList}" var="user">
        <c:if test="${count < 20}">
            <c:set var="string1" value="${fn:substring(user.name, 0, 1)}" />
            <c:if test="${fn:startsWith(string1,'J')}">
                <tr>
                    <td><c:out value="${user.name}" /></td>
                    <td><img src='https://graph.facebook.com/<c:out value="${user.id}"/>/picture' /></td>
                </tr>
                <c:set var="count" value="${count + 1}" scope="page" />
            </c:if>
        </c:if>
    </c:forEach>

您正在使它變得不必要的困難。 從最壞的情況到最好的情況,以下是比您的IMO都更好的替代解決方案:

  1. 使用c:forEachvarStatus="loopStatus"屬性,該屬性允許使用${loopStatus.index}知道循環內迭代的索引。 這樣可以刪除您的count屬性。
  2. 使用c:forEachend="19"屬性
  3. 在控制器中(或在檢索用戶時甚至在SQL查詢中)准備列表,以確保列表最多只有20個元素:

     users = users.subList(0, Math.min(users.size(), 20)); 

問題似乎與您的第一行有關。 您尚未終止c:set標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM