分页

分页

1 什么分页

第N页/共M页 首页上一页 1 2 3 4 5 67 8 9 10 下一页 尾页 口go

 

  分页的优点:只查询一页,不用查询所有页!

 

2 分页数据

页面的数据都是由Servlet传递来的!

Servlet:

l  当前面:pageCode,pc;

Ø  pc:如果页面没有传递当前页码,那么Servlet默认是第一页,或者按页面传递的来准!

l  总页数:totalPages,tp

Ø  tp:总记录数/每页记录数

l  总记录数:totalRecored,tr

Ø  tr:dao来获取,select count(*) from t_customer;

l  每页记录数:业务数据或叫系统数据!10行!

l  当前页数据:beanList

url

 

3 分页Bean的设计

这些分页数据总要在各层之间来回的传递!

我们把这些分页数据封装到一个javabean中,它就叫分页Bean,例如:PageBean

PageBean.java

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 分页在各层中的处理

l  页面:给出分页相关的链接们!

Ø  页面需要给Servlet传递什么:有可能传递pc

l  Servlet:创建PageBean对象,给PageBean所有的属性赋值,然后传递给页面;

Ø  Servlet需要给DAO传递pc、ps

l  Service:略

l  Dao:

Ø  tr:select count(*)t_customer

Ø  beanList:select * fromt_customer limit x, y

 

 

5 显示分页页码列表

1 2 3 4 5 6 7 8 9 10

l  最多显示多少个页码!定为10;

l  当前页,在页码列表中的位置,定为6;

 

只需要当前页码来定出来页码列表!

定下来页码列表只需要两样数据:

l  begin

l  end

10 11 12 13 14 (15) 16 17 18 19

需要使用pc来推算出begin和end

begin = pc – 5

end = pc + 4

计算公式:

l  如果总页数<=10(列表长度),那么begin=1,end=总页数

l  使用公式计算;begin=pc-5, end=pc + 4;

l  头溢出:当begin<1时,让begin=1

l  尾溢出:当end>${tp}时,让end=${tp}

 

6. 在超链接中要保留参数

当使用多条件查询后,然后在点击第2 页时,这个第2页超链接没有条件了,所以会丢失条件,所以我们需要在页面上的所有链接都要保留条件!

我们要把条件以一个字符串的形式保存到PageBean的url中!这个任务交给Servlet!

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值