【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);

本文来源:http://www.gdgbn.com/wangyezhizuo/29210/