这个分页很厉害,封装了HTML代码

  1. /**  
  2.  *   
  3.  */  
  4. package com.dotease.common;   
  5.   
  6. import java.util.List;   
  7.   
  8. /**  
  9.  * @author Administrator牛一Niuyi  2007-11-9  
  10.  *2007-11-9  
  11.  */  
  12. public class Pager    
  13. {   
  14.     private int curPage;   
  15.   
  16.     private int lastPage;   
  17.   
  18.     private int prevPage;   
  19.   
  20.     private int nextPage;   
  21.   
  22.     private int resultCount;   
  23.   
  24.     private int pageSize;   
  25.   
  26.     private int pageCount;   
  27.        
  28.     private String uri; //=uri+?+queryString   
  29.        
  30.     private String pageInfo="";   
  31.        
  32.     private List data;   
  33.        
  34.     public Pager()   
  35.     {   
  36.         this.pageSize=10;   
  37.     }   
  38.        
  39.     public Pager(int curPage, int pageSize,int resultCount, String uri)   
  40.     {   
  41.         this.curPage = curPage;   
  42.         this.resultCount = resultCount;   
  43.         this.pageSize = pageSize;   
  44.         this.uri = uri;   
  45.     }   
  46.        
  47.        
  48.     public String getFirstPageTag()   
  49.     {   
  50.         if(0==getPageCount())   
  51.          {   
  52.             return "<FONT face=Webdings>9</FONT>";    
  53.          }   
  54.         StringBuffer sb = new StringBuffer();   
  55.         sb.append("<A title=第一页 href=/""+this.getUri()+"1/">");   
  56.         sb.append("<FONT face=Webdings>9</FONT></A>");   
  57.         return sb.toString();   
  58.     }   
  59.       
  60.     public String getCurPageTag()   
  61.     {   
  62.         if(0==getPageCount())   
  63.             return "";   
  64.         StringBuffer sb = new StringBuffer();   
  65.         sb.append(" <A title=当前页 href=/""+this.getUri()+this.getCurPage()+"/">");   
  66.         sb.append("<FONT  color=red><STRONG>");   
  67.         sb.append(this.getCurPage()+"</STRONG></FONT></A> ");   
  68.         return sb.toString();   
  69.     }   
  70.        
  71.     public String getLastPageTag()   
  72.     {   
  73.         if(0==getPageCount())   
  74.          {   
  75.             return "<FONT face=Webdings>:</FONT>";    
  76.          }   
  77.         StringBuffer sb = new StringBuffer();   
  78.         sb.append("<A title=最后一页 href=/""+this.getUri()+this.getLastPage()+"/">");   
  79.         sb.append("<FONT face=Webdings>:</FONT></A>");   
  80.         return sb.toString();   
  81.     }   
  82.        
  83.     public String getPrevPageTag()   
  84.     {   
  85.         if(curPage==1||0==getPageCount())   
  86.          {   
  87.             return "<FONT face=Webdings>7</FONT>";    
  88.          }   
  89.         StringBuffer sb = new StringBuffer();   
  90.         sb.append("<A title=上一页 href=/""+this.getUri()+this.getPrevPage()+"/">");   
  91.         sb.append("<FONT face=Webdings>7</FONT></A>");   
  92.         return sb.toString();   
  93.     }   
  94.        
  95.     public String getNextPageTag()   
  96.     {   
  97.         if(curPage==getPageCount()||0==getPageCount())   
  98.             {   
  99.               return "<FONT face=Webdings>8</FONT>";   
  100.             }   
  101.         StringBuffer sb = new StringBuffer();   
  102.         sb.append("<A title=下一页 href=/""+this.getUri()+this.getNextPage()+"/">");   
  103.         sb.append("<FONT face=Webdings>8</FONT></A>");   
  104.         return sb.toString();   
  105.     }   
  106.        
  107.     //commonTag   
  108.        
  109.     public String getcommonTag(int index)   
  110.     {   
  111.         return " <A href=/""+this.getUri()+index+"/">"+index+"</A>";   
  112.     }   
  113.     获得页码列表   
  114.     public String getListNumTag()   
  115.     {   
  116.         int num=0;//要显示的页码数   
  117.         int startNum = 0;//从那个数开始   
  118.         int pageCount=this.getPageCount();   
  119.         if(pageCount<10)   
  120.         {      
  121.             num=this.getPageCount();   
  122.         }else  
  123.         {   
  124.             startNum=((curPage-1)/10)*10;   
  125.             if((startNum+10)>pageCount)   
  126.             {      
  127.                 num=pageCount-startNum;   
  128.             }else  
  129.             {   
  130.                 num=10;   
  131.             }   
  132.         }   
  133.            
  134.         StringBuffer sb = new StringBuffer() ;   
  135.         for(int i=1;i<=num;i++)   
  136.         {   
  137.             if(curPage==(startNum+i))   
  138.             {   
  139.                 sb.append(this.getCurPageTag());   
  140.             }else  
  141.             {   
  142.                 sb.append(getcommonTag(startNum+i));   
  143.             }   
  144.         }          
  145.         return sb.toString();      
  146.     }   
  147.        
  148.     //获得页码列表的显示信息   
  149.     public String getPageInfo()   
  150.     {   
  151.         StringBuffer sb = new StringBuffer() ;   
  152.         int pageCount=this.getPageCount();   
  153.         sb.append("共检索到");   
  154.         sb.append("<STRONG>"+resultCount+"</STRONG>记录 ");   
  155.         sb.append("当前:第<STRONG><FONT color=red>"+curPage+"</FONT>/"+pageCount+"</STRONG>页  ");   
  156.         sb.append("每页<STRONG>"+pageSize+"</STRONG>条记录 ");   
  157.         sb.append(this.getFirstPageTag());   
  158.         sb.append(this.getPrevPageTag());   
  159.         sb.append(this.getListNumTag());   
  160.         sb.append(this.getNextPageTag());   
  161.         sb.append(this.getLastPageTag());   
  162.         sb.append("转到"+this.getSelect());    
  163.         return sb.toString();   
  164.            
  165.     }   
  166.     public String getSelect()   
  167.     {   
  168.         StringBuffer sb = new StringBuffer();   
  169.         sb.append("<SELECT οnchange=window.location.href=/""+uri+"/"+this.value name=page_sel>");   
  170.         int pageCount=this.getPageCount();   
  171.          for(int n=1;n<=pageCount;n++)    
  172.          {   
  173.                  if (n==curPage)   
  174.                      {     
  175.                      sb.append("<OPTION selected value="+n+">"+n+"</OPTION>");   
  176.                       }else  
  177.                       {   
  178.                           sb.append("<OPTION value="+n+">"+n+"</OPTION>");   
  179.                        }    
  180.           }   
  181.         sb.append("</SELECT>");   
  182.            
  183.         return sb.toString();   
  184.     }   
  185.        
  186.     public String getSkipPage()   
  187.     {   
  188.         StringBuffer sb = new StringBuffer();   
  189.         sb.append("<script>");   
  190.         sb.append("/nfunction goPage(pageNumber) {");   
  191.         sb.append("/nwindow.location.href=/"" + getUri() + "/" + pageNumber;");   
  192.         sb.append("/n}");   
  193.         sb.append("/n</script>/n");      
  194.         sb.append("<input name=/"page_num/" type=/"text/" onBlur=/"goPage(this.value)/" size=/"3/" maxlength=/"3/">");   
  195.         return sb.toString();   
  196.     }   
  197.        
  198.     public int getCurPage() {   
  199.         return curPage;   
  200.     }   
  201.   
  202.     public void setCurPage(int curPage) {   
  203.         this.curPage = curPage;   
  204.     }   
  205.   
  206.     public int getFirstPage() {   
  207.         return 1;   
  208.     }   
  209.   
  210.        
  211.   
  212.     public int getLastPage() {   
  213.         return this.getPageCount();   
  214.     }   
  215.   
  216.   
  217.   
  218.     public int getNextPage()    
  219.     {   
  220.         if (curPage == getPageCount())   
  221.         {   
  222.             return curPage;   
  223.         }   
  224.         return curPage + 1;   
  225.     }   
  226.   
  227.   
  228.     public int getPageCount()    
  229.     {   
  230.         if(resultCount==0)   
  231.         {   
  232.             this.curPage=0;   
  233.             return 0;   
  234.         }   
  235.         pageCount=(resultCount - 1) / pageSize + 1;   
  236.         if(curPage>pageCount)   
  237.             curPage=pageCount;   
  238.         return pageCount;   
  239.     }   
  240.   
  241.   
  242.     public int getPageSize() {   
  243.         return pageSize;   
  244.     }   
  245.   
  246.     public void setPageSize(int pageSize) {   
  247.         this.pageSize = pageSize;   
  248.     }   
  249.   
  250.     public int getPrevPage()    
  251.     {   
  252.         if (1 == curPage)   
  253.         {   
  254.             return 1;   
  255.         }   
  256.         return curPage - 1;   
  257.     }   
  258.   
  259.        
  260.   
  261.     public int getResultCount() {   
  262.         return resultCount;   
  263.     }   
  264.   
  265.     public void setResultCount(int resultCount)    
  266.     {   
  267.         this.resultCount = resultCount;   
  268.     }   
  269.   
  270.     public String getUri() {   
  271.         return uri;   
  272.     }   
  273.   
  274.     public void setUri(String uri)    
  275.     {   
  276.         int p=uri.lastIndexOf("curPage=");   
  277.         if(p==-1)   
  278.         {   
  279.             uri=uri+"&curPage=";   
  280.         }else  
  281.         {      
  282.             uri=uri.substring(0,p+8);   
  283.         }   
  284.         this.uri = uri;   
  285.     }   
  286. //aa   
  287.     public List getData() {   
  288.         return data;   
  289.     }   
  290.     public void setData(List data) {   
  291.         this.data = data;   
  292.     }   
  293. }  

 uri就是url !

以上为封装分页信息的Java类!

 

使用代码

//设置数据

<%

 pager.setUri(request.getRequestURI()+"?"+request.getQueryString());
 pager.setCurPage(curPage);
 pager.setPageSize(pageSize);
 pager.setData(bookList);
 pager.setResultCount(count);  
 request.setAttribute("pager",pager);

%>

//若想显示页码列表和一个页码下拉框用${pager.pageInfo}

//若要加一个跳转页码的文本框用${pager.skipPage}

 

使用${pager.pageInfo}效果如图:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值