packagecn.zr.testpage.utils;public classPage {//页数(第几页)
private intcurrentpage;//查询数据库里面对应的数据有多少条
private int total;//从数据库查处的总记录数//每页查询的数量条
private intsize;//下页
private intnext;//最后一页
private intlast;private intlpage;private intrpage;//从哪条开始查
private intstart;publicPage() {super();
}public intgetCurrentpage() {returncurrentpage;
}/****
*
*@paramcurrentpage
*@paramtotal
*@parampagesize*/
public void setCurrentpage(int currentpage,int total,intpagesize) {//如果整除表示正好分N页,如果不能整除在N页的基础上+1页
int totalPages = total%pagesize==0? total/pagesize : (total/pagesize)+1;//总页数
this.last =totalPages;//判断当前页是否越界,如果越界,我们就查最后一页
if(currentpage>totalPages){this.currentpage =totalPages;
}else{this.currentpage=currentpage;
}if(currentpage<=0){this.currentpage=1;
}//计算start 1----0 2 ------ 5
this.start = (this.currentpage-1)*pagesize;
}public intgetTotal() {returntotal;
}public void setTotal(inttotal) {this.total =total;
}public intgetSize() {returnsize;
}public void setSize(intsize) {this.size =size;
}public intgetNext() {return currentpage
}//上一页
public intgetUpper() {return currentpage>1? currentpage-1: currentpage;
}public intgetLast() {returnlast;
}//总共有多少页,即末页
public void setLast(intlast) {this.last = total%size==0? total/size : (total/size)+1;
}public intgetLpage() {returnlpage;
}public void setLpage(intlpage) {this.lpage =lpage;
}public intgetRpage() {returnrpage;
}public void setRpage(intrpage) {this.rpage =rpage;
}/****
*
*@paramtotal 总记录数
*@paramcurrentpage 当前页
*@parampagesize 每页显示多少条*/
public Page(int total,int currentpage,intpagesize) {//总记录数
this.total =total;//每页显示多少条
this.size=pagesize;//计算当前页和数据库查询起始值以及总页数
setCurrentpage(currentpage, total, pagesize);//分页计算
int leftcount =5, //需要向上一页执行多少次
rightcount =4;//起点页
this.lpage =currentpage;//结束页
this.rpage =currentpage;//2点判断
this.lpage = currentpage-leftcount; //正常情况下的起点
this.rpage = currentpage+rightcount; //正常情况下的终点//页差=总页数和结束页的差
int topdiv = this.last-rpage; //判断是否大于最大页数
/***
* 起点页
* 1、页差<0 起点页=起点页+页差值
* 2、页差>=0 起点和终点判断*/
this.lpage=topdiv<0? this.lpage+topdiv:this.lpage;/***
* 结束页
* 1、起点页<=0 结束页=|起点页|+1
* 2、起点页>0 结束页*/
this.rpage=this.lpage<=0? this.rpage+(this.lpage*-1)+1: this.rpage;/***
* 当起点页<=0 让起点页为第一页
* 否则不管*/
this.lpage=this.lpage<=0? 1:this.lpage;/***
* 如果结束页>总页数 结束页=总页数
* 否则不管*/
this.rpage=this.rpage>last? this.last:this.rpage;
}public intgetStart() {returnstart;
}}