共计 933 个字符,预计需要花费 3 分钟才能阅读完成。
1、分页页码展示
1 2 3 4 5 6 7 8 9 10
2、最多显示多少个页码
定为 10;
3、当前页(锚点)
在页码列表中的位置,定为 6;
4、分页的开始页和结束页
只需要 当前位置页码 来定出来页码列表!
定下来页码列表只需要两样数据:
begin
end
10 11 12 13 14 (15) 16 17 18 19
需要使用 pc 来推算出 begin 和 end
begin = pc – 5
end = pc + 4
5、开始页和结束页的计算公式
- 如果总页数 <=10(列表长度),那么 begin=1,end= 总页数
- 使用公式计算;begin=pc-5, end=pc + 4;
- 头溢出:当 begin<1 时,让 begin=1
- 尾溢出:当 end>{tp}时,让 end={tp}
<%-- 计算 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}">
<a href='<c:url value="/CustomerServlet?pc=${i}"/>'>${i}</a>
</c:forEach>
正文完
星哥玩云-微信公众号