javaWeb笔记(六) 分页 显示分页页码列表

计算公式:
 如果总页数<=10(列表长度),那么begin=1,end=总页数
 使用公式计算;begin=当前-5, end=当前 + 4;
 头溢出:当begin<1时,让begin=1
 尾溢出:当end>总页数时,让end=总页数

<center>
第${pb.pc }页/共${pb.tp }页

<a href="${pb.url }&pc=1">首页</a>
<c:if test="${pb.pc > 1 }"> <%-- 当前页大于1时才显示上一页 --%>
<a href="${pb.url }&pc=${pb.pc-1}">上一页</a>
</c:if>

<%-- 计算begin、end --%>
<c:choose>
    <%-- 如果总页数不足10页,那么把所有的页数都显示出来! --%>
    <c:when test="${pb.tp <= 10 }">
        <c:set var="begin" value="1" />
        <c:set var="end" value="${pb.tp }" />
    </c:when>
    <c:otherwise>
        <%-- 当总页数>10时,通过公式计算出begin和end --%>
        <c:set var="begin" value="${pb.pc-5 }" />
        <c:set var="end" value="${pb.pc+4 }" />    
        <%-- 头溢出 --%>
        <c:if test="${begin < 1 }">
            <c:set var="begin" value="1" />
            <c:set var="end" value="10" />
        </c:if> 
        <%-- 尾溢出 --%>
        <c:if test="${end > pb.tp }">
            <c:set var="begin" value="${pb.tp - 9 }" />
            <c:set var="end" value="${pb.tp }" />
        </c:if> 
    </c:otherwise>
</c:choose>
<%-- 循环遍历页码列表 --%>
<c:forEach var="i" begin="${begin }" end="${end }">
    <c:choose>
        <c:when test="${i eq pb.pc }">
            [${i }]
        </c:when>
        <c:otherwise>
            <a href="${pb.url }&pc=${i}">[${i }]</a> 
        </c:otherwise>
    </c:choose>

</c:forEach>


<c:if test="${pb.pc < pb.tp }">
<a href="${pb.url }&pc=${pb.pc+1}">下一页</a>
</c:if>
<a href="${pb.url }&pc=${pb.tp}">尾页</a>
</center>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章