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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章