分页-页码实现

2022-09-14 21:25:54 浏览数 (1)

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}
代码语言:javascript复制
<%-- 计算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>

0 人点赞