为什么当我尝试为变量指定带有变量的开始和结束标记的值时,它们总是得到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个条目。请赐教。提前谢谢〜
答案 0 :(得分: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>