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>