组团学

分页-页码实现

阅读 (939308)

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>
需要 登录 才可以提问哦