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

来源:互联网 发布:2017年淘宝双十一报名 编辑:程序博客网 时间:2024/05/16 03:04

一、需求

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


显示的主要内容有:

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;}}


	
				
		
原创粉丝点击