1

为什么当我出于灵活性的目的尝试为带有变量的开始和结束标签指定值时,它们总是导致 0(这是第一个索引,因此只输出 1 个条目)。[见下面的代码]

<%
    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 个条目。请赐教。先谢谢了~

4

1 回答 1

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);

PS - 我也认为这是一个不好的方法。我了解到您也可以这样做:

<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>
于 2016-07-25T10:03:58.993 回答