posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          java List 分頁應(yīng)用(二)

          Posted on 2010-01-10 02:22 Gavin.lee 閱讀(615) 評(píng)論(0)  編輯  收藏 所屬分類: java SE & EE
          應(yīng)用類:
          package com.Gavin.tools.util;

          import java.util.*;

          /**
           * 為L(zhǎng)ist分頁
           * 樣式比較簡(jiǎn)單,適合WAP使用,直接輸出頁碼到頁面
           
          */


          public class PagerUtil {
              
          private int pageSize = 10;// 每頁大小
              
              
          private int nextPage;// 下一頁
              
              
          private int prePage;// 前一頁
              
              
          private int pageCount;// 總頁數(shù)
              
              
          private int currentPage;// 當(dāng)前頁
              
              
          private int listSize = 0;// 記錄總數(shù)
              
              
          private ArrayList alist = new ArrayList();
              
              
          private String url;

              
              
          /**
               * 初始化記錄列表
               * 
          @param it Iterator
               * 
          @return ArrayList
               
          */

              
          public ArrayList getAlist(Iterator it) {
                  ArrayList al 
          = new ArrayList();
                  
          while (it.hasNext()) {
                      al.add(it.next());
                  }

                  
          return al;
              }


              
          /**
               * 構(gòu)造方法
               * 
          @param list Collection
               
          */

              
          public PagerUtil(Collection list) {
                  alist 
          = this.getAlist(list.iterator());
                  listSize 
          = alist.size();
                  nextPage 
          = 1;
                  prePage 
          = 0;
                  pageCount 
          = listSize / pageSize + 1;
                  currentPage 
          = 1;
              }


              
          /**
               * 構(gòu)造方法
               * 
          @param list Collection
               * 
          @param pageSize int
               
          */

              
          public PagerUtil(Collection list, int pageSize) {
                  alist 
          = (ArrayList) list;
                  
          this.pageSize = pageSize;
                  listSize 
          = alist.size();
                  nextPage 
          = 1;
                  prePage 
          = 0;
                  pageCount 
          = listSize / pageSize;
                  
          if (listSize % pageSize > 0{
                      pageCount 
          = pageCount + 1;
                  }

                  currentPage 
          = 1;
              }


              
          public PagerUtil(Vector v, int pageSize) {
                  
          for (int i = 0; i < v.size(); i++{
                      alist.add(v.get(i));
                  }

                  
          this.pageSize = pageSize;
                  listSize 
          = alist.size();
                  nextPage 
          = 1;
                  prePage 
          = 0;
                  pageCount 
          = listSize / pageSize;
                  
          if (listSize % pageSize > 0{
                      pageCount 
          = pageCount + 1;
                  }

                  currentPage 
          = 1;
              }


              
          /**
               * 下一頁
               * 
          @return ArrayList
               
          */

              
          public int nextPage() {
                  
          int tempInt = 1;
                  
          if (currentPage < this.getPageCount() && currentPage >= 1{
                      tempInt 
          = currentPage + 1;
                  }
           else
                      tempInt 
          = 1;
                  
          return tempInt;
              }


              
          /**
               * 前一頁
               * 
          @return ArrayList
               
          */

              
          public int prePage() {
                  
          int tempInt = 1;

                  
          if (currentPage > 1{
                      tempInt 
          = currentPage - 1;
                  }
           else
                      tempInt 
          = this.getPageCount();
                  
          return tempInt;
              }


              
          /**
               * 第一頁
               * 
          @return ArrayList
               
          */

              
          public int firstPage() {
                  nextPage 
          = 1;
                  prePage 
          = this.getPageCount();
                  currentPage 
          = nextPage;
                  
          return currentPage;
              }


              
          /**
               * 最后一頁
               * 
          @return ArrayList
               
          */

              
          public int endPage() {
                  nextPage 
          = this.getPageCount();
                  prePage 
          = nextPage - 1;
                  currentPage 
          = nextPage;
                  
          return currentPage;
              }


              
          /**
               * 根據(jù)當(dāng)前頁得到記錄列表
               * 
          @param currentPage int
               * 
          @return ArrayList
               
          */

              
          public ArrayList getPageList() {
                  ArrayList tempList 
          = new ArrayList();
                  
          for (int i = (currentPage - 1* pageSize; i < (currentPage - 1)
                          
          * pageSize + pageSize; i++{
                      
          if (i >= 0 && i < this.alist.size()) {
                          tempList.add(alist.get(i));
                      }
           else
                          
          break;
                  }

                  
          return tempList;
              }


              
          public String getPageCtrlString() {
                  String strCtrl 
          = "";
                  
          if (this.currentPage == 1{
                      
          //strCtrl = "首頁 ";
                  }
           else {
                      strCtrl 
          = "<a href='" + url + "?page=1'>首頁</a> ";
                  }

                  
          if (this.currentPage == 1{
                      
          //strCtrl = strCtrl + "上一頁 ";
                  }
           else {
                      strCtrl 
          = strCtrl + "<a href='" + url + "?page=" + this.prePage() + "'>上頁</a> ";
                  }

                  
          if (this.currentPage == this.pageCount) {
                      
          //strCtrl = strCtrl + "下一頁 ";
                  }
           else {
                      strCtrl 
          = strCtrl + "<a href='" + url + "?page=" + this.nextPage() + "'>下頁</a> ";
                  }

                  
          if (this.currentPage == this.pageCount) {
                      
          //strCtrl = strCtrl + "末頁 ";
                  }
           else {
                      strCtrl 
          = strCtrl + "<a href='" + url + "?page=" + this.getPageCount() + "'>末頁</a> ";
                  }

                  strCtrl 
          = strCtrl + "\n\r";        //換行
          //        strCtrl = strCtrl
          //                + "跳到 <select name='toPage' onChange=\"window.location='" + url
          //                + "?page='+this.options[this.selectedIndex].value;\">";
                  if(this.getPageCount() <= 1{
                      
                  }
           else if(this.getPageCount() <= 7{
                      
          for (int i = 1; i <= this.getCurrentPage(); i++{
                          
          if (i == this.getCurrentPage()) {
                              strCtrl 
          = strCtrl + "<b>" + i + "</b> ";
                          }
           else {
                              strCtrl 
          = strCtrl + "<a href='" + url + "?page=" + i + "'>" + i + "</a> ";
                          }

                      }

                  }
           else if(4 < this.getCurrentPage() && this.getCurrentPage() < (this.getPageCount() - 3)) {
                      
          for (int i = this.getCurrentPage() - 3; i <= this.getCurrentPage() + 3; i++{
                          
          if (i == this.getCurrentPage()) {
                              strCtrl 
          = strCtrl + "<b>" + i + "</b> ";
                          }
           else {
                              strCtrl 
          = strCtrl + "<a href='" + url + "?page=" + i + "'>" + i + "</a> ";
                          }

                      }

                  }
           else if(this.getCurrentPage() <= 4{
                      
          for (int i = 1; i <= 7; i++{
                          
          if (i == this.getCurrentPage()) {
                              strCtrl 
          = strCtrl + "<b>" + i + "</b> ";
                          }
           else {
                              strCtrl 
          = strCtrl + "<a href='" + url + "?page=" + i + "'>" + i + "</a> ";
                          }

                      }

                  }
           else if((this.getPageCount() - 6<= this.getCurrentPage()) {
                      
          for (int i = this.getPageCount() - 6; i <= this.getPageCount(); i++{
                          
          if (i == this.getCurrentPage()) {
                              strCtrl 
          = strCtrl + "<b>" + i + "</b> ";
                          }
           else {
                              strCtrl 
          = strCtrl + "<a href='" + url + "?page=" + i + "'>" + i + "</a> ";
                          }

                      }

                  }
           else {
                      
          for (int i = this.getCurrentPage() - 3; i <= this.getCurrentPage() + 3; i++{
                          
          if (i == this.getCurrentPage()) {
                              strCtrl 
          = strCtrl + "<b>" + i + "</b> ";
                          }
           else {
                              strCtrl 
          = strCtrl + "<a href='" + url + "?page=" + i + "'>" + i + "</a> ";
                          }

                      }

                  }

                  
                  strCtrl 
          = strCtrl + "\n\r";        //換行
                  strCtrl = strCtrl + "當(dāng)前" + this.getCurrentPage() + "/" + this.getPageCount() + "頁 每頁" 
                      
          + this.getPageSize() + "條 共" + this.listSize + "";
                  
          return strCtrl;
              }

              
              
          public int getCurrentPage() {
                  
          return currentPage;
              }


              
          public int getNextPage() {
                  
          return nextPage;
              }


              
          public int getPageCount() {
                  
          return pageCount;
              }


              
          public int getPageSize() {
                  
          return pageSize;
              }


              
          public int getPrePage() {
                  
          return prePage;
              }


              
          public String getUrl() {
                  
          return url;
              }


              
          public void setPrePage(int prePage) {
                  
          this.prePage = prePage;
              }


              
          public void setPageSize(int pageSize) {
                  
          this.pageSize = pageSize;
              }


              
          public void setPageCount(int pageCount) {
                  
          this.pageCount = pageCount;
              }


              
          public void setNextPage(int nextPage) {
                  
          this.nextPage = nextPage;
              }


              
          public void setCurrentPage(int currentPage) {
                  
          if (currentPage > this.getPageCount()) {
                      
          this.currentPage = this.getPageCount();
                  }
           else if (currentPage < 0{
                      
          this.currentPage = 1;
                  }
           else {
                      
          this.currentPage = currentPage;
                  }

              }


              
          public void setUrl(String url) {
                  
          this.url = url;
              }

              
          }


          測(cè)試類:
          package com.Gavin.tools.util;

          import java.util.ArrayList;

          public class TestPagrUtil {
              
          public static void main(String args[]) {
                  ArrayList al 
          = new ArrayList();
                  al.add(
          "a");
                  al.add(
          "b");
                  al.add(
          "c");
                  al.add(
          "d");
                  al.add(
          "e");
                  al.add(
          "f");
                  al.add(
          "g");
                  al.add(
          "h");
                  al.add(
          "i");
                  al.add(
          "j");
                  al.add(
          "k");
                  al.add(
          "l");
                  al.add(
          "m");
                  al.add(
          "n");

                  PagerUtil autopage 
          = new PagerUtil(al,1);
                  autopage.setCurrentPage(
          5);
                  autopage.setUrl(
          "/page/user/account/isprize.jsp");
                  ArrayList currentPageList 
          = autopage.getPageList();        
                  String ctrlStr 
          = autopage.getPageCtrlString();
                  
                  
          for(Object o: currentPageList) {
                      System.out.println(o.toString());
                  }

                  System.out.println(ctrlStr);
              }

          }

          //
          //e
          //<a href='/page/user/account/isprize.jsp?page=1'>首頁</a> <a href='/page/user/account/isprize.jsp?page=4'>上頁</a> <a href='/page/user/account/isprize.jsp?page=6'>下頁</a> <a href='/page/user/account/isprize.jsp?page=14'>末頁</a> 
          //
          //<a href='/page/user/account/isprize.jsp?page=2'>2</a> <a href='/page/user/account/isprize.jsp?page=3'>3</a> <a href='/page/user/account/isprize.jsp?page=4'>4</a> <b>5</b> <a href='/page/user/account/isprize.jsp?page=6'>6</a> <a href='/page/user/account/isprize.jsp?page=7'>7</a> <a href='/page/user/account/isprize.jsp?page=8'>8</a> 
          //
          //當(dāng)前5/14頁 每頁1條 共14條
          主站蜘蛛池模板: 普格县| 江城| 千阳县| 彰化市| 东山县| 广安市| 皋兰县| 忻城县| 平利县| 喜德县| 宝山区| 抚顺市| 云阳县| 抚远县| 旌德县| 柳河县| 长武县| 铅山县| 三门县| 乌鲁木齐县| 汕头市| 阜南县| 商河县| 龙陵县| 桃园县| 磐安县| 湖口县| 深圳市| 澄迈县| 林芝县| 且末县| 清河县| 扎赉特旗| 尉氏县| 广昌县| 宁安市| 故城县| 上虞市| 南皮县| 措美县| 开封市|