JSP和分页链接

时间:2016-01-19 17:22:44

标签: jsp pagination

我希望以这种方式显示分页链接:当前页面和3个前进链接以及3个向后链接。

显然,我不希望显示负面页面或最后一页面后的页面的链接。

所以在我的pagination.jsp中我有以下内容: param.pages是总页数 没有<c:if test="${page < param.pages} ">的东西,我正确显示链接,但在param.pages之后没有检查页面。使用c:if,我什么也没显示,我认为这是因为测试无法识别 page

    <c:forEach begin="${currentPage + 1 }" end="${currentPage + 3}" var="page">
            <c:if test="${page < param.pages} ">
            <li><a
                    href="${pageContext.request.contextPath}/${param.currentURL }/<c:out value="${page }"/>">
<c:out value="${page }"/> </a></li>
            </c:if>
            </c:forEach>

哪种方式最好?

1 个答案:

答案 0 :(得分:1)

我终于发现它,仅使用JSP标签,不知道它是否是最好的解决方案,但是它可以工作,如果有人需要它我会把它写下来。

在我的pagination.jsp

<c:set var="maxLink" value="4"></c:set> // it's the number of links you want before and after the current one

// this part is to avoid to have negative values in the forEach cycle for the previous links
<c:set var="bottomLimit" value="${param.currentPage - maxLink }"></c:set>

        <c:choose>
            <c:when test="${bottomLimit <= 0 }">
                <c:set var="begin" value="1"></c:set>
            </c:when>
            <c:otherwise>
                <c:set var="begin" value="${bottomLimit }"></c:set>
            </c:otherwise>
        </c:choose>

<c:forEach begin="${begin }" end="${param.currentPage -1}"
            var="pageBefore">

            <li><a
                href="${pageContext.request.contextPath}/${param.currentURL }/<c:out value="${pageBefore }"/>"><c:out
                        value="${pageBefore }" /> </a></li>

        </c:forEach>

// link to the currentPage
<li class="active"><a
            href="${pageContext.request.contextPath}/${param.currentURL }/${param.currentPage}">${param.currentPage }</a></li>

//Link to the next pages, that ends at the last page
<c:set var="end" value="${param.currentPage + maxLink }"></c:set>
<c:forEach begin="${param.currentPage + 1 }" end="${end}" var="page">
            <c:if test="${page <= param.pages}">
                <li><a
                    href="${pageContext.request.contextPath}/${param.currentURL }/<c:out value="${page }"/>"><c:out
                            value="${page }" /> </a></li>
            </c:if>
        </c:forEach>