[ZZ]struts分頁的一種實現

          【來源】 http://blog.csdn.net/yq76034150
          最近看到很好的一種分頁方法,就貼出來大家共同分享!(原作在javaworld),有不完善的地方,希望大家改正!!!

          使用一個頁面控制類,它記錄頁面信息,如上頁,下頁,當前頁等。在查詢的Action中,將這個控制類和查詢條件一起傳遞給數據庫訪問bean,然后將這兩個參數保存在用戶session中。在分頁控制Action中,利用接收到的分頁參數調用數據庫訪問的bean.
          (1)分頁控制類

          package com.tower.util;
          public class PageController {
              int totalRowsAmount; file://總行數
              boolean rowsAmountSet; file://是否設置過totalRowsAmount
              int pageSize=2;   file://每頁行數
              int currentPage=1; file://當前頁碼
              int nextPage;
              int previousPage;
              int totalPages;  file://總頁數
              boolean hasNext;  file://是否有下一頁
              boolean hasPrevious; file://是否有前一頁
              String description;
              int pageStartRow;
              int pageEndRow;
              
              public PageController(int totalRows){
            setTotalRowsAmount(totalRows);
              }
              public PageController(){}
          public void setTotalRowsAmount(int i) {
            if(!this.rowsAmountSet){
             totalRowsAmount = i;
             totalPages=totalRowsAmount/pageSize+1;
                setCurrentPage(1);
             this.rowsAmountSet=true;
            }
            
          }
          public void setCurrentPage(int i) {
            currentPage = i;
            nextPage=currentPage+1;
            previousPage=currentPage-1;
            file://計算當前頁開始行和結束行
            if(currentPage*pageSize
                pageEndRow=currentPage*pageSize;
                pageStartRow=pageEndRow-pageSize+1;
                
            }else{
                pageEndRow=totalRowsAmount;
                pageStartRow=pageSize*(totalPages-1)+1;
            }
            if (nextPage>totalPages){
                hasNext=false;
            }else{
             hasNext=true;
            }
            if(previousPage==0){
               hasPrevious=false;
            }else{
             hasPrevious=true;
            };
            System.out.println(this.description());
          }
          public int getCurrentPage() {
            return currentPage;
          }
          public boolean isHasNext() {
            return hasNext;
          }
          public boolean isHasPrevious() {
            return hasPrevious;
          }
          public int getNextPage() {
            return nextPage;
          }
          public int getPageSize() {
            return pageSize;
          }
          public int getPreviousPage() {
            return previousPage;
          }
          public int getTotalPages() {
            return totalPages;
          }
          public int getTotalRowsAmount() {
            return totalRowsAmount;
          }
          public void setHasNext(boolean b) {
            hasNext = b;
          }
          public void setHasPrevious(boolean b) {
            hasPrevious = b;
          }
          public void setNextPage(int i) {
            nextPage = i;
          }
          public void setPageSize(int i) {
            pageSize = i;
          }
          public void setPreviousPage(int i) {
            previousPage = i;
          }
          public void setTotalPages(int i) {
            totalPages = i;
          }
          public int getPageEndRow() {
            return pageEndRow;
          }
          public int getPageStartRow() {
            return pageStartRow;
          }

          public String getDescription(){
              String description=\"Total:\"+this.getTotalRowsAmount()+
              \" items \"+this.getTotalPages() +\" pages\";
          //    this.currentPage+\" Previous \"+this.hasPrevious +
          //    \" Next:\"+this.hasNext+
          //    \" start row:\"+this.pageStartRow+
          //    \" end row:\"+this.pageEndRow;
              return description;
          }

          public String description(){
              String description=\"Total:\"+this.getTotalRowsAmount()+
              \" items \"+this.getTotalPages() +\" pages,Current page:\"+
              this.currentPage+\" Previous \"+this.hasPrevious +
              \" Next:\"+this.hasNext+
              \" start row:\"+this.pageStartRow+
              \" end row:\"+this.pageEndRow;
              return description;
          }


          public static void main(String args[]){
            PageController pc=new PageController(3);
                  System.out.println(pc.getDescription());
          //        pc.setCurrentPage(2);
          //  System.out.println(pc.description());
          //  pc.setCurrentPage(3);
          //  System.out.println(pc.description());
          }

          posted on 2006-06-13 05:17 XiaoLi 閱讀(531) 評論(0)  編輯  收藏 所屬分類: Others

          公告


          文章發布許可

          本站作品均采用知識共享署名-非
          商業性使用-禁止演繹 2.5 中國大
          陸許可協議
          進行許可。

          Books I've Translated

          《精通Nginx(第二版)》

          精通Nginx(第二版)
          《云計算:原理與范式》

           云計算:原理與范式

          《SQL技術手冊(第三版)》
          SQL技術手冊(第三版)
          《MySQL核心技術手冊(第二版)》
          MySQL核心技術手冊(第2版)
          《RESTful Web Services中文版》
          RESTful Web Services中文版

          導航

          留言簿(2)

          隨筆分類

          搜索

          最新評論

          主站蜘蛛池模板: 吉水县| 郧西县| 乌审旗| 南川市| 镇康县| 宁波市| 新泰市| 错那县| 和林格尔县| 永定县| 叙永县| 红原县| 临桂县| 阳曲县| 谷城县| 公安县| 韩城市| 延安市| 南丹县| 巫山县| 咸宁市| 阜宁县| 双辽市| 霍林郭勒市| 仪征市| 宜川县| 南靖县| 呼和浩特市| 东城区| 泸定县| 油尖旺区| 石渠县| 古交市| 聊城市| 报价| 郎溪县| 大宁县| 通山县| 宜君县| 霸州市| 宁海县|