1_分页实现方案


一、分析:

1,先分析页面中要显示哪些数据。
2,由Servlet(显示层)准备页面所需要的数据, 然后由JSP(显示层)显示出数据。
3,让Servlet找Service层/Dao层获取数据,一般来说,数据的获取途径:
a, 页面传递给Servlet的参数
b, 查询数据库
c, 计算出的数据
d, 从其他系统中/网络上获取到的数据
...


1,先分析页面中要显示哪些数据(动态数据):
recordList 数据列表,注意不是全部的数据列表,是某一页的数据列表。
currentPage 当前是第几页
pageCount 总页数
recordCount 总记录数
pageSize 每页显示多少条数据
上一页页码(当前页-1)
下一页页码(当前页+1)


2,让Servlet准备这些数据
======================================================= 方式一
// 拿到页面要显示的数据
recordList = ?;
currentPage = ?;
pageCount = ?;
recordCount = ?;
pageSize = ?;
// 准备数据(放到request作用域中)
request.setAttribute("recordList", recordList);
request.setAttribute("currentPage", currentPage);
request.setAttribute("pageCount", pageCount);
request.setAttribute("recordCount", recordCount);
request.setAttribute("pageSize", pageSize);
// 转发到JSP去显示数据
request..(".../list.jsp")..forward(..);

======================================================= 方式二
// 拿到页面要显示的数据
recordList = ?;
currentPage = ?;
recordCount = ?;
pageSize = ?;
PageBean pageBean = new PageBean(recordList, currentPage, recordCount, pageSize);
// 准备数据(放到request作用域中)
request.setAttribute("pageBean", pageBean);
// 转发到JSP去显示数据
request..(".../list.jsp")..forward(..);


3,然后再写:
可以先写Service/Dao,以查询出、计算出所需要的数据。
也可以先写JSP,去显示这些数据。



流程:(JSP <--- Servlet) <--- Service <-- Dao


再分析其他环节:
1,JSP
前提是Servlet已经准备好了所有数据(PageBean),在JSP中就是使用EL和JSTL等显示这些数据。




2,获取数据
pageCount 总页数 ---- 计算出来

currentPage 当前是第几页 ---- 页面传递的参数,在servlet中request.getParameter(..)
pageSize 每页显示多少条数据 ---- 页面传递的参数,在servlet中request.getParameter(..)

recordList 一页的数据列表 ---- 查询数据库,在Dao中要有相应的方法。
recordCount 总记录数 ---- 查询数据库,在Dao中要有相应的方法。


3,所以需要在Dao接口中增加方法以能够查询分页用的数据:
======================================================= 方式一
ContactDao
int getCount();
List<Contact> findAll(currentPage, pageSize);  --> ".. limit ?, ?";

======================================================= 方式二
ContactDao
QueryResult find(currentPage, pageSize, ...);
QueryResult类:
int recordCount;
List recordList;
// getter, setter
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值