1.分页的优点
只查询一页,不用查询所有页
2.分页数据
页面的数据都是由servlet传递来的
servlet:
- 当前页:pageCode,pc
pc:如果页面没有传递当前页码,那么servlet默认是第一页,或者按页面传递的为准 - 总页数:totalPages,tp
tp:总记录数/每页记录数 - 总记录数:total/record,tr
tr:dao来获取,select count(*) from t_customer - 每页记录数:业务数据后叫系统数据!10行!
- 当前页数据:beanList
- url
3.数据的传递
-
这些分页数据总要在各层之间来回的传递!
- 我们把这些分页数据封装到一个javabean中,它就叫分页Bean,例如PageBean
public class PageBean<T> {
private int pc;//当前页码page code
// private int tp;//总页数total page
private int tr;//总记录数total record
private int ps;//每页记录数page size
private List<T> beanList;//当前页的记录数
........
}
4.分页在各层中的处理
页面:给出分页相关的链接
页面需要给servlet传递什么:有可能传递当前页码(pc)
servlet:创建PageBean对象,给出PageBean所有的属性值,然后传递给页面;
给service传递pc、ps
service:略
Dao:
tr:select count(*).....
beanList:select * from t_customer limit x,y
5.显示分页页码列表
最多显示多少个页码!暂定为10
当前页,在页码中的位置,定为6
只需要**当前页码**来定出来页码列表!
定下来页码列表这个需要两样数据
begain=pc-5
end=pc+4
需要使用pc来推算出begin和end
计算公式:
如果总页数<=10(列表长度),按摩begin=1,end=总页数
使用公式计算;begin=pc-5,end=pc+4;
头溢出:当begin<1时,让begin=1
尾溢出:当end>${tp}时,让end=${tp}
6.在超链接中要保留参数
-
当使用多条件查询后,然后再点击第2页时,这个第二页超链接没有条件了,所以会丢失条件,所以我们需要在页面上的所有链接都要保留条件!
- 我们要把条件以一个字符串的形式保存到PageBean的url中!这个任务交给url