2016-07-25 9 views
0

なぜ柔軟な目的のために可変で開始タグと終了タグの値を指定しようとすると、常に0になります1エントリーのみ)。JSTL foreachループで、柔軟性のために変数を持つ開始タグと終了タグを指定する

<% 
    int maxEntry = 10; 
    int pageNumber = Integer.parseInt(request.getParameter("page")); 
%> 

<c:forEach items="${employees}" var="employee" begin="${maxEntry*(pageNumber-1)}" end="${maxEntry*pageNumber}"> 
    Employee <c:out value="${employees}"/><p> 
</c:forEach> 

[以下のコードを参照してください]が、私はそれをこのように実行するとき:

<c:forEach items="${employees}" var="employee" begin="0" end="10"> 
    Employee <c:out value="${employees}"/><p> 
</c:forEach> 

を期待、それは10個のエントリを出力としてそれが動作します。私を教えてください。ありがとうございます〜

答えて

0

私はそれを得ました。どういうわけか、私はそれをいくつかのグーグル・グーグル・マニュアルと読書のマニュアルを通して動作させる方法を考え出しました:

int pageNumber = pageNumber = Integer.parseInt(request.getParameter("page"));; 
int maxEntry = 10; 

// setAttribute to be read by JSTL 
pageContext.setAttribute("maxEntry", maxEntry); 
pageContext.setAttribute("pageNumber", pageNumber); 

P.S. - 私はそれも悪いアプローチだと考えました。私はあなたもこのようにすることができることを学びました:

<c:set var="maxEntry" value="${10}" /> 

<c:choose> 
    <c:when test="${empty param.page}"> 
     <c:set var="pageNumber" value="${1}" /> 
    </c:when> 
    <c:otherwise> 
     <c:set var="pageNumber" value="${param.page}" /> 
    </c:otherwise> 
</c:choose> 
関連する問題