【www.gdgbn.com--js教程】
java分页类代码
首先,最主要的一个类是 pageview ,其中封装了构造一个页面所需全部信息。如下:
public class pageview
{ /** 分页数据 **/
private list
records; /** 页码开始索引和结束索引 **/
private pageindex pageindex;
/** 总页数 **/
private long totalpage = 1;
/** 每页显示记录数 **/
private int maxresult = 12;
/** 当前页 **/
private int currentpage = 1;
/** 总记录数 **/
private long totalrecord;
/** 页码数量 **/
private int pagecode = 10;
public pageview(int maxresult, int currentpage) {
this.maxresult = maxresult;
this.currentpage = currentpage;
}
public void setqueryresult(queryrst qr){
settotalrecord(qr.gettotalrecord());
setrecords(qr.getrstlist());
}
public int getpagecode() {
return pagecode;
}
public void setpagecode(int pagecode) {
this.pagecode = pagecode;
}
public long gettotalrecord() {
return totalrecord;
}
public void settotalrecord(long totalrecord) {
this.totalrecord = totalrecord;
settotalpage(this.totalrecord%this.maxresult==0? this.totalrecord/this.maxresult : this.totalrecord/this.maxresult+1);
}
public list
getrecords() { return records;
}
public void setrecords(list
records) { this.records = records;
}
public pageindex getpageindex() {
return pageindex;
}
public long gettotalpage() {
return totalpage;
}
public void settotalpage(long totalpage) {
this.totalpage = totalpage;
this.pageindex = webtool.getpageindex(pagecode, currentpage, totalpage);
}
public int getmaxresult() {
return maxresult;
}
public int getcurrentpage() {
return currentpage;
}
}
其中pageindex,说明页码开始索引和结束索引
public class pageindex {
private long startindex;
private long endindex;
public pageindex(long startindex, long endindex) {
this.startindex = startindex;
this.endindex = endindex;
}
public long getstartindex() {
return startindex;
}
public void setstartindex(long startindex) {
this.startindex = startindex;
}
public long getendindex() {
return endindex;
}
public void setendindex(long endindex) {
this.endindex = endindex;
}
}
涉及到的getpageindex方法为,用于确定当到达currenpage时的pageindex状况,如下:
public static pageindex getpageindex(long viewpagecount, int currenpage, long totalpage){
long startpage = currenpage-(viewpagecount%2==0? viewpagecount/2-1 : viewpagecount/2);
long endpage = currenpage+viewpagecount/2;
if(startpage<1){
startpage = 1;
if(totalpage>=viewpagecount) endpage = viewpagecount;
else endpage = totalpage;
}
if(endpage>totalpage){
endpage = totalpage;
if((endpage-viewpagecount)>0) startpage = endpage-viewpagecount+1;
else startpage = 1;
}
return new pageindex(startpage, endpage);
}
另外,将结果集总记录数放在queryrst里面
public class queryrst
{ private list
rstlist; private long totalrecord;
// getter & setter ...
}
使用时,
pageview> pageview = new pageview>(12,currentpage);
pageview.setqueryresult(qr);