java 分页工具类(提问)

今天翻了好多关于java分页工具类的文章  ,身为小白的我真的越看越蒙。真是不知道怎么写了,各种各样的都用。我想问问各位大神。以下是截取攻城鱼的文章:

[java]  view plain  copy
  1. package test.dao;  
  2.    
  3. import java.util.List;  
  4.    
  5. /** 
  6.  * 用于分页的工具类 
  7.  * @author 莫取网名 
  8.  */  
  9. public class Pager<T> {  
  10.    
  11.     private List<T> list; //对象记录结果集  
  12.     private int total = 0// 总记录数  
  13.     private int limit = 20// 每页显示记录数  
  14.     private int pages = 1// 总页数  
  15.     private int pageNumber = 1// 当前页  
  16.        
  17.     private boolean isFirstPage=false;        //是否为第一页  
  18.     private boolean isLastPage=false;         //是否为最后一页  
  19.     private boolean hasPreviousPage=false;   //是否有前一页  
  20.     private boolean hasNextPage=false;       //是否有下一页  
  21.        
  22.     private int navigatePages=8//导航页码数  
  23.     private int[] navigatePageNumbers;  //所有导航页号  
  24.        
  25.     public Pager(int total, int pageNumber) {  
  26.         init(total, pageNumber, limit);  
  27.     }  
  28.        
  29.     public Pager(int total, int pageNumber, int limit) {  
  30.         init(total, pageNumber, limit);  
  31.     }  
  32.        
  33.     private void init(int total, int pageNumber, int limit){  
  34.         //设置基本参数  
  35.         this.total=total;  
  36.         this.limit=limit;  
  37.         this.pages=(this.total-1)/this.limit+1;  
  38.            
  39.         //根据输入可能错误的当前号码进行自动纠正  
  40.         if(pageNumber<1){  
  41.             this.pageNumber=1;  
  42.         }else if(pageNumber>this.pages){  
  43.             this.pageNumber=this.pages;  
  44.         }else{  
  45.             this.pageNumber=pageNumber;  
  46.         }  
  47.            
  48.         //基本参数设定之后进行导航页面的计算  
  49.         calcNavigatePageNumbers();  
  50.            
  51.         //以及页面边界的判定  
  52.         judgePageBoudary();  
  53.     }  
  54.        
  55.     /** 
  56.      * 计算导航页 
  57.      */  
  58.     private void calcNavigatePageNumbers(){  
  59.         //当总页数小于或等于导航页码数时  
  60.         if(pages<=navigatePages){  
  61.             navigatePageNumbers=new int[pages];  
  62.             for(int i=0;i<pages;i++){  
  63.                 navigatePageNumbers[i]=i+1;  
  64.             }  
  65.         }else//当总页数大于导航页码数时  
  66.             navigatePageNumbers=new int[navigatePages];  
  67.             int startNum=pageNumber-navigatePages/2;  
  68.             int endNum=pageNumber+navigatePages/2;  
  69.                
  70.             if(startNum<1){  
  71.                 startNum=1;  
  72.                 //(最前navigatePages页  
  73.                 for(int i=0;i<navigatePages;i++){  
  74.                     navigatePageNumbers[i]=startNum++;  
  75.                 }  
  76.             }else if(endNum>pages){  
  77.                 endNum=pages;  
  78.                 //最后navigatePages页  
  79.                 for(int i=navigatePages-1;i>=0;i--){  
  80.                     navigatePageNumbers[i]=endNum--;  
  81.                 }  
  82.             }else{  
  83.                 //所有中间页  
  84.                 for(int i=0;i<navigatePages;i++){  
  85.                     navigatePageNumbers[i]=startNum++;  
  86.                 }  
  87.             }  
  88.         }  
  89.     }  
  90.    
  91.     /** 
  92.      * 判定页面边界 
  93.      */  
  94.     private void judgePageBoudary(){  
  95.         isFirstPage = pageNumber == 1;  
  96.         isLastPage = pageNumber == pages && pageNumber!=1;  
  97.         hasPreviousPage = pageNumber > 1;  
  98.         hasNextPage = pageNumber < pages;  
  99.     }  
  100.        
  101.        
  102.     public void setList(List<T> list) {  
  103.         this.list = list;  
  104.     }  
  105.    
  106.     /** 
  107.      * 得到当前页的内容 
  108.      * @return {List} 
  109.      */  
  110.     public List<T> getList() {  
  111.         return list;  
  112.     }  
  113.    
  114.     /** 
  115.      * 得到记录总数 
  116.      * @return {int} 
  117.      */  
  118.     public int getTotal() {  
  119.         return total;  
  120.     }  
  121.    
  122.     /** 
  123.      * 得到每页显示多少条记录 
  124.      * @return {int} 
  125.      */  
  126.     public int getLimit() {  
  127.         return limit;  
  128.     }  
  129.    
  130.     /** 
  131.      * 得到页面总数 
  132.      * @return {int} 
  133.      */  
  134.     public int getPages() {  
  135.         return pages;  
  136.     }  
  137.    
  138.     /** 
  139.      * 得到当前页号 
  140.      * @return {int} 
  141.      */  
  142.     public int getPageNumber() {  
  143.         return pageNumber;  
  144.     }  
  145.    
  146.    
  147.     /** 
  148.      * 得到所有导航页号  
  149.      * @return {int[]} 
  150.      */  
  151.     public int[] getNavigatePageNumbers() {  
  152.         return navigatePageNumbers;  
  153.     }  
  154.    
  155.     public boolean isFirstPage() {  
  156.         return isFirstPage;  
  157.     }  
  158.    
  159.     public boolean isLastPage() {  
  160.         return isLastPage;  
  161.     }  
  162.    
  163.     public boolean hasPreviousPage() {  
  164.         return hasPreviousPage;  
  165.     }  
  166.    
  167.     public boolean hasNextPage() {  
  168.         return hasNextPage;  
  169.     }  
  170.    
  171.     public String toString(){  
  172.         StringBuffer sb=new StringBuffer();  
  173.         sb.append("[")  
  174.             .append("total=").append(total)  
  175.             .append(",pages=").append(pages)  
  176.             .append(",pageNumber=").append(pageNumber)  
  177.             .append(",limit=").append(limit)  
  178.             .append(",isFirstPage=").append(isFirstPage)  
  179.             .append(",isLastPage=").append(isLastPage)  
  180.             .append(",hasPreviousPage=").append(hasPreviousPage)  
  181.             .append(",hasNextPage=").append(hasNextPage)  
  182.         .append(",navigatePageNumbers=");  
  183.         int len=navigatePageNumbers.length;  
  184.         if(len>0)sb.append(navigatePageNumbers[0]);  
  185.         for(int i=1;i<len;i++){  
  186.             sb.append(" "+navigatePageNumbers[i]);  
  187.         }  
  188.         sb.append(",list.size="+list.size());  
  189.         sb.append("]");  
  190.         return sb.toString();  
  191.     }  
  192. }  

其中这段是干什么用的


  1.  public String toString(){  
  2.         StringBuffer sb=new StringBuffer();  
  3.         sb.append("[")  
  4.             .append("total=").append(total)  
  5.             .append(",pages=").append(pages)  
  6.             .append(",pageNumber=").append(pageNumber)  
  7.             .append(",limit=").append(limit)  
  8.             .append(",isFirstPage=").append(isFirstPage)  
  9.             .append(",isLastPage=").append(isLastPage)  
  10.             .append(",hasPreviousPage=").append(hasPreviousPage)  
  11.             .append(",hasNextPage=").append(hasNextPage)  
  12.         .append(",navigatePageNumbers=");  
  13.         int len=navigatePageNumbers.length;  
  14.         if(len>0)sb.append(navigatePageNumbers[0]);  
  15.         for(int i=1;i<len;i++){  
  16.             sb.append(" "+navigatePageNumbers[i]);  
  17.         }  
  18.         sb.append(",list.size="+list.size());  
  19.         sb.append("]");  
  20.         return sb.toString();  
  21.     }  

还有下面这个也不是很明白!


有没有好心大神帮我解释以下  谢谢!!!

猜你喜欢

转载自blog.csdn.net/wangze0428/article/details/80267829
今日推荐