分页技术

PageBean分页实现
本文介绍了一个名为PageBean的Java类的设计与实现细节,该类用于处理分页查询的业务需求,包括设置当前页数、每页记录数、记录总数等属性,并能够自动计算总页数及页码列表的范围。

public class PageBean {

 // 用户传递的参数或配置的值
 private int currentPage;// 当前页
 private int pageSize;// 每页显示多少条记录

 // 查询数据库
 private List recordList;// 本页的数据列表
 private int recordCount;// 总记录数

 // 计算
 private int pageCount;// 总页数
 private int beginPageIndex;// 页码列表的开始索引
 private int endPageIndex;// 页码列表的结束索引

 /**
  * 只接受前4个必要的属性,会自动计算出后3个属性
  *
  * @param currentPage
  * @param pageSize
  * @param recordList
  * @param recordCount
  */
 public PageBean(int currentPage, int pageSize, List recordList, int recordCount) {
  this.currentPage = currentPage;
  this.pageSize = pageSize;
  this.recordList = recordList;
  this.recordCount = recordCount;

  // 计算总页面
  pageCount = (recordCount + pageSize - 1) / pageSize;

  // 计算页码列表的开始与结束索引
  // 1,总页码<=10:显示全部页码
  if (pageCount <= 10) {
   beginPageIndex = 1;
   endPageIndex = pageCount;
  }
  // 2,总页码>10
  else {
   // 1,默认显示当前页附近的共10页码(前4个+当前页+后5个)
   beginPageIndex = currentPage - 4;
   endPageIndex = currentPage + 5;

   // 2,如果前面不足4个页码,显示前10个页码
   if (beginPageIndex < 1) {
    beginPageIndex = 1;
    endPageIndex = 10;
   }
   // 3,如果后面不足5个页码,显示后10页码
   else if (endPageIndex > pageCount) {
    endPageIndex = pageCount;
    beginPageIndex = pageCount - 10 + 1;
   }
  }

 }

 public List getRecordList() {
  return recordList;
 }

 public void setRecordList(List recordList) {
  this.recordList = recordList;
 }

 public int getCurrentPage() {
  return currentPage;
 }

 public void setCurrentPage(int currentPage) {
  this.currentPage = currentPage;
 }

 public int getPageCount() {
  return pageCount;
 }

 public void setPageCount(int pageCount) {
  this.pageCount = pageCount;
 }

 public int getPageSize() {
  return pageSize;
 }

 public void setPageSize(int pageSize) {
  this.pageSize = pageSize;
 }

 public int getRecordCount() {
  return recordCount;
 }

 public void setRecordCount(int recordCount) {
  this.recordCount = recordCount;
 }

 public int getBeginPageIndex() {
  return beginPageIndex;
 }

 public void setBeginPageIndex(int beginPageIndex) {
  this.beginPageIndex = beginPageIndex;
 }

 public int getEndPageIndex() {
  return endPageIndex;
 }

 public void setEndPageIndex(int endPageIndex) {
  this.endPageIndex = endPageIndex;
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值