java - JSP - 帮助在分页中生成固定数量的链接

标签 java jsp pagination jstl el

我的分页效果很好,但我无法理解如何生成固定数量的页面链接。 比如我需要这样固定5个链接:1 - 2 - 3 - 4 - 5 > 如果我点击第三页,我将始终看到 5 个链接:< 3 - 4 - 5 - 6 -7 >

现在使用我的算法我只能生成所有链接,但我不知道如何创建我上面解释的内容。 这是我的代码(仅用于生成 href):

<div class="pageBoxRight">
 <c:if test="${param.pageNumber > 1}">
 <a href="javascript: previousRecords();" class="previous"><em>previous</em></a>
 </c:if>
 <c:forEach var="i" begin="1" end="${tot + 1}" step="1" varStatus ="status">
 <a href="javascript: goToPage(${i});" id="paginator${i}" class="pageNumber"><span class="pageNumberRight">${i}</span></a>
 </c:forEach>
 <c:if test="${param.pageNumber < tot}">
 <a href="javascript: nextRecords();" class="next"><em>next</em></a>
 </c:if>
</div>

有人可以帮助我吗?非常感谢。

最佳答案

它变得复杂。

<c:set var="p" value="${param.pageNumber}" /> <%-- current page (1-based) --%>
<c:set var="l" value="5" /> <%-- amount of page links to be displayed --%>
<c:set var="r" value="${l / 2}" /> <%-- minimum link range ahead/behind --%>
<c:set var="t" value="${tot}" /> <%-- total amount of pages --%>

<c:set var="begin" value="${((p - r) > 0 ? ((p - r) < (t - l + 1) ? (p - r) : (t - l)) : 0) + 1}" />
<c:set var="end" value="${(p + r) < t ? ((p + r) > l ? (p + r) : l) : t}" />

<c:forEach begin="${begin}" end="${end}" var="page">
    ${page}...
</c:forEach>

关于java - JSP - 帮助在分页中生成固定数量的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4517845/

相关文章:

java - Rally:Java:无法向测试用例添加标签

Java - ZUI(可缩放用户界面)

java - 如何在自定义标签中使用doTag方法添加cookie?

postgresql - 使用非唯一键的 Postgres 分页?

vue.js - 动态生成内容的分页

java - 如何使用java将文本插入到扫描的pdf文档中

java - 什么是 AOSP 工具链?

jsp - Servlet/JSP MVC 模式如何转换为 JSF/Facelets(特别是服务和 Controller 部分)?

java - 使用 jSTL 填充表时出错

php - Codeigniter:分页没有获取其他行