如何实现分页功能(一)(分析)

本文介绍了如何在Java中实现商品的分页功能,详细解析了分页模型的关键元素,如currentPage、pageSize、pageTotalCount、pageTotal和items。通过JavaBean和JSP页面代码展示了如何处理分页请求,包括计算开始位置、展示分页链接以及获取当前页数据。此外,还提及了后续将探讨的如何根据输入页码跳转和显示连续页码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何实现分页功能(一)?(分析)

1、根据淘宝的分页模型分析

在这里插入图片描述
(1)currentPage->客户端传递给服务端处理:根据用户选择指定的页码传递给服务端,进行业务逻辑处理,返回规定记录数的页面数据信息和分页信息。
(2)pageSize->规定每页可以显示的记录数(除最后一页可能不是规定的记录数),其决定因素:自己定义的page类中pageSize默认设置的记录数;或者可以在分页的按钮button“确定”后面再添加一个每页规定显示记录数的输入框,这样自己就可以根据自己的需求去选择每页可以显示的记录数。
(3)pageTotalCount->总记录数:总记录数要根据数据库中存储的数据来获得,可以使用获取

select count(*) from t_shop

(4)pageTotal->总页数:决定因素主要是pageTotalCount和pageSize,总页数可以通过pageTotalCount/pageSize获得。最后一页不满足pageSize会影响到总页数,因此要使得pageTotalCount%pageTotal>1则pageTotal+1,否则为pageTotal。
(5)items->当前页显示的数据信息:根据currentPage和pageSize决定显示当前页显示的多少个记录信息,因为要从数据库中取数据,所以需要用到sql,那么如何获取呢?

select * from t_shop limit begin,pageSize

那么如何得到得到begin呢?
例如pageSize为10,当前页currentPage为1:begin=(currentPage-1)*10=0;
当前页currentPage为2:begin=(currentPage-1)*10=10;
当前页currentPage为3:begin=(currentPage-1)*10=20;

2.实现初步分页

在这里插入图片描述

这里提供一个page的javabean和page的jsp页面分页代码:
javabean

public class Page<T> {
    public static final Integer PAGE_SIZE=10;
    private Integer currentPage;
    private Integer pageTotal;
    private Integer pageTotalCount;
    private Integer pageSize;
    private List<T> items;
    private String url;
    //下面是setter和getter,构造器,toStrng的生成,大家自行操作

分页的jsp代码

<div id="page_nav">
			<c:if test="${requestScope.page.currentPage>1}">
				<a href="${requestScope.page.url}&currentPage=1">首页</a>
				<a href="${requestScope.page.url}&pageNo=${requestScope.page.currentPage-1}">上一页</a>
			</c:if>
			<c:forEach begin="${begin}" end="${end}" var="i">
			<c:if test="${i==requestScope.page.currentPage}">
				<a href="${requestScope.page.url}&currentPage=${i}">[${i}]</a>
			</c:if>
			<c:if test="${i!=requestScope.page.currentPage}">
				<a href="${requestScope.page.url}&currentPage=${i}">${i}</a>
			</c:if>
			</c:forEach>
			<c:if test="${requestScope.page.currentPage<requestScope.page.pageTotal}">
			<a href="${requestScope.page.url}&currentPage=${requestScope.page.pageNo+1}">下一页</a>
			<a href="${requestScope.page.url}&currentPage=${requestScope.page.pageTotal}">末页</a>
			</c:if>
			共${ requestScope.page.pageTotal }页,${ requestScope.page.pageTotalCount }条记录
			到第<input value="${empty requestScope.page.currentPage?"":requestScope.page.currentPage}" name="pn" id="pn_input"/><input type="button" id="searchPageBtn" value="确定">
		</div>
</div>

本期主要是实现商品初步分页,下期将分享如何根据输入指定页码跳转到指定页面,其次如何显示指定连续的页码例如我想让五个页码连续显示,同时点击指定页码会跳转到相应页面。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值