您的位置:首页 > 其它

5、实现通用分页功能一(创建分页实体)

2013-06-13 16:26 363 查看
一、需求

页码显示的格式类型于下图所示



显示的主要内容有:

1、总记录数

2、总页数

3、当前页码

4、每页显示的记录数

5、页码列表的第一个页号,如上图右方中的3

6、页码列表的最后一个页号,上图中是12

7、当前页显示的记录的集合

页码列表的格式是左四右五,即以当前页码为中心,左边显示四个页码,右边显示五个页码,如上图中,当前页码是7,所以页码列表为3,4,5,6,7,8,9,10,11,12

二、分页实体

可以根据上面的需求分析,创建分页实体类

Page.java

package com.charlie.shop.domain.page;

/**
* 这是分页实体类
* @author charlie
*
*/

import java.util.List;

public class Page<T> {
/**当前页码,默认是1**/
private int pageNow=1;
/**每页显示的记录数**/
private int pageSize;
/**当前页显示的记录列表**/
private List<T> recordList;
/**总记录数**/
private int recordCount;
/**页码列表的第一个页码**/
private int beginPage;
/**页码列表的最后一个页码**/
private int endPage;
/**总页数**/
private int pageCount;

/**
* 构造器限制为需要四个参数,是确保对象的这四个属性都有值
* @param pageNow  当前页码
* @param pageSize 每页显示的记录
* @param recordCount 总记录
* @param recordList  当前页待显示数据列表
*/
public Page(int pageNow,int pageSize,int recordCount,List<T> recordList){
this.pageNow = pageNow;
this.pageSize = pageSize;
this.recordCount = recordCount;
this.recordList = recordList;
//====下面是计算其他三个属性的值=======
/*
* 计算总页数 两种方式
* 方式一:recordCount/pageSize 如果有余数则要加1,如果刚好整除则不用加1
* 方式二:(recordCount + pageSize - 1) / pageSize
*/
pageCount = (recordCount+pageSize-1)/pageSize;

/*下面计算页码列表的开始索引和结束索引
* 默认是页码列表长度为10: 前面四页索引 +当前页码+后五页
* 如果总页数小于或等于10的话,就全部显示
* 总页数大于10的话:
* 如果前面不够四页就后面补够
* 如果后面不够五页就前面补
*/
//先判断总页数是否在10以内
if(pageCount<=10){
//不超过10页,全部显示即可
beginPage = 1;
endPage = pageCount;
}else if(pageNow-4<1){
//前面不够四页,后面补,即显示最前面10页
beginPage = 1;
endPage = 10;
}else if(pageNow+5>pageCount){
//后面不够五页
endPage = pageCount;
beginPage = endPage-9;
}else {
//前四后五都满足
beginPage = pageNow-4;
endPage = pageNow+5;
}
}
//------下面是getter/setter方法
public int getPageNow() {
return pageNow;
}

public void setPageNow(int pageNow) {
this.pageNow = pageNow;
}

public int getPageSize() {
return pageSize;
}

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

public List<T> getRecordList() {
return recordList;
}

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

public int getRecordCount() {
return recordCount;
}

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

public int getBeginPage() {
return beginPage;
}

public void setBeginPage(int beginPage) {
this.beginPage = beginPage;
}

public int getEndPage() {
return endPage;
}

public void setEndPage(int endPage) {
this.endPage = endPage;
}

public int getPageCount() {
return pageCount;
}

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



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: