posts - 23,comments - 12,trackbacks - 0

          這里我以從一個(gè)用戶表中查詢用戶信息為例演示其用法:

          1.將PageResultSet.java文件編譯成class文件,并放入你的Web
          應(yīng)用程序的WEB-INF/classes/com/youngor/util目錄下,可以對(duì)包名做相應(yīng)修改。

          2.在你的Action類中:
          先從業(yè)務(wù)處理邏輯類中取出數(shù)據(jù)(ArrayList或Vector格式)
          UserBO userBO=new UserBO();
          Collection data=userBO.findUsers();//示例方法
          再得到當(dāng)前頁(yè)curPage和每頁(yè)記錄數(shù)pageSize
          int curPage = Integer.parseInt(request.getParameter(“cur_page“));
          int pageSize=15;
          然后生成PageResultSet對(duì)象
          PageResultSet dataList = new PageResultSet(data, curPage, pageSize);
          request.setAttribute("usersList", usersList);

          3.在你的JSP頁(yè)面中:
             <%
                    PageResultSet pageResultSet=(PageResultSet)request.getAttribute("usersList");
             ArrayList usersList=(ArrayList)pageResultSet.getData();
             for(int i=0;i<usersList.size();i++)
             {
                      UserEO userEO=(UserEO)usersList.get(i);%>
                <tr>
                  <td><a href="view_user.do?id=<%=userEO.getId()%>"><%=userEO.getUsername()%></a></td>
                  <td><%=userEO.getName()%></td>
                  <td><%=userEO.getPhoneNumber()%></td>
                  <td><%=userEO.getEmailBox()%></td>
                  <td><%=userEO.getAddress()%></td>
                  <td><%=userEO.getPostcode()%></td>
                  </tr>
              <%}%>
              </table></td>
            </tr>
          </table>

          <!-- 顯示分頁(yè)工具欄 -->

          <%=pageResultSet.getToolBar("list_users.do")%>


          注意:
          1、如果你覺得分頁(yè)工具欄不能滿足你的要求,可以用PageResultSet類中的公共方法
          first()、previous()、next()、last()定制自己的工具欄,并且,你還可以在PageResultSet中定義多個(gè)樣式的工具欄;
          2、getToolBar(String url)方法接受帶查詢字符串的參數(shù),比如“l(fā)ist_users.do?class_id=1“。

           

          //PageResultSet.java
          package com.youngor.util;

          import java.util.*;

          /**
           * <p>Title: PageResultSet</p>
           *
           * <p>Description:分頁(yè)類 </p>
           *
           * <p>Copyright: Copyright (c) 2004</p>
           *
           * <p>Company:youngor-studio(http://www.54youngor.com) </p>
           * @author:伍維波
           * @version 1.0
           */
          public class PageResultSet {
              /**
               * 分頁(yè)數(shù)據(jù)
               */
              private Collection data = null;
              /**
               * 當(dāng)前頁(yè)
               */
              private int curPage;
              /**
               * 每頁(yè)顯示的記錄數(shù)
               */
              private int pageSize;
              /**
               * 記錄行數(shù)
               */
              private int rowsCount;
              /**
               * 頁(yè)數(shù)
               */
              private int pageCount;

              public PageResultSet(Collection data) {
                  this.data = data;
                  this.curPage = 1;
                  this.pageSize = 10;
                  this.rowsCount = data.size();
                  this.pageCount = (int) Math.ceil((double) rowsCount / pageSize);
              }

              public PageResultSet(Collection data, int curPage) {
                  this.data = data;
                  this.curPage = curPage;
                  this.pageSize = 10;
                  this.rowsCount = data.size();
                  this.pageCount = (int) Math.ceil((double) rowsCount / pageSize);
              }

              public PageResultSet(Collection data, int curPage, int pageSize) {
                  this.data = data;
                  this.curPage = curPage;
                  this.pageSize = pageSize;
                  this.rowsCount = data.size();
                  this.pageCount = (int) Math.ceil((double) rowsCount / pageSize);
              }

              /**
               * getCurPage:返回當(dāng)前的頁(yè)數(shù)
               *
               * @return int
               */
              public int getCurPage() {
                  return curPage;
              }

              /**
               * getPageSize:返回分頁(yè)大小
               *
               * @return int
               */
              public int getPageSize() {
                  return pageSize;
              }

              /**
               * getRowsCount:返回總記錄行數(shù)
               *
               * @return int
               */
              public int getRowsCount() {
                  return rowsCount;
              }

              /**
               * getPageCount:返回總頁(yè)數(shù)
               *
               * @return int
               */
              public int getPageCount() {
                  return pageCount;
              }
              /**
               * 第一頁(yè)
               * @return int
               */
              public int first() {
                  return 1;
              }
              /**
               * 最后一頁(yè)
               * @return int
               */
              public int last() {
                  return pageCount;
              }
              /**
               * 上一頁(yè)
               * @return int
               */
              public int previous() {
                  return (curPage - 1 < 1) ? 1 : curPage - 1;
              }
              /**
               * 下一頁(yè)
               * @return int
               */
              public int next() {
                  return (curPage + 1 > pageCount) ? pageCount : curPage + 1;
              }

              /**
               * 第一頁(yè)
               * @return boolean
               */
              public boolean isFirst() {
                  return (curPage==1)?true:false;
              }

              /**
               * 第一頁(yè)
               * @return boolean
               */
              public boolean isLast() {
                  return (curPage==pageCount)?true:false;
              }
              /**
               * 獲取當(dāng)前頁(yè)數(shù)據(jù)
               * @return Collection
               */
              public Collection getData() {
                  Collection curData = null;
                  if (data != null) {
                      int start = (curPage - 1) * pageSize;
                      int end = 0;
                      if (start + pageSize > rowsCount)
                          end = rowsCount;
                      else
                          end = start + pageSize;
                      ArrayList arrayCurData = new ArrayList();
                      ArrayList arrayData = null;
                      Vector vectorCurData = new Vector();
                      Vector vectorData = null;
                      boolean isArray = true;
                      if (data instanceof ArrayList) {
                          arrayData = (ArrayList) data;
                          isArray = true;
                      } else if (data instanceof Vector) {
                          vectorData = (Vector) data;
                          isArray = false;
                      }
                      for (int i = start; i < end; i++) {
                          if (isArray) {
                              arrayCurData.add(arrayData.get(i));
                          } else {
                              vectorData.add(vectorData.elementAt(i));
                          }
                      }
                      if (isArray) {
                          curData = (Collection) arrayCurData;
                      } else {
                          curData = (Collection) vectorCurData;
                      }
                  }
                  return curData;
              }
              /**
               * 獲取工具條
               * @return String
               */
              public String getToolBar(String fileName){
                  String temp="";
                  if(fileName.indexOf("?")==-1)
                  {
                      temp="?";
                  }
                  else
                  {
                      temp="&";
                  }
                  String str="<form method='post' name='frmPage' action='"+fileName+"'>";
                  str+="<p align='center'>";
                  if(isFirst())
                      str+="首頁(yè) 上一頁(yè)&nbsp;";
                  else
                  {
                      str+="<a href='"+fileName+temp+"cur_page=1'>首頁(yè)</a>&nbsp;";
                      str+="<a href='"+fileName+temp+"cur_page="+(curPage-1)+"'>上一頁(yè)</a>&nbsp;";
                  }
                  if(isLast())
                      str+="下一頁(yè) 尾頁(yè)&nbsp;";
                  else
                  {
                      str+="<a href='"+fileName+temp+"cur_page="+(curPage+1)+"'>下一頁(yè)</a>&nbsp;";
                      str+="<a href='"+fileName+temp+"cur_page="+pageCount+"'>尾頁(yè)</a>&nbsp;";
                  }
                  str+="&nbsp;共<b>"+rowsCount+"</b>條記錄&nbsp;";
                  str+="&nbsp;轉(zhuǎn)到<select name='page' onChange=\"location='"+fileName+temp+"cur_page='+this.options[this.selectedIndex].value\">";
                  for(int i=1;i<=pageCount;i++)
                  {
                      if(i==curPage)
                          str+="<option value='"+i+"' selected>第"+i+"頁(yè)</option>";
                      else
                          str+="<option value='"+i+"'>第"+i+"頁(yè)</option>";
                  }
                  str+="</select></p></form>";
                  return str;
              }
          }

          posted on 2005-09-26 16:59 my java 閱讀(616) 評(píng)論(0)  編輯  收藏 所屬分類: java 轉(zhuǎn)帖
          主站蜘蛛池模板: 延安市| 哈尔滨市| 廊坊市| 前郭尔| 阿尔山市| 庄浪县| 于都县| 泸西县| 清河县| 达州市| 乳源| 凤翔县| 乐清市| 日照市| 黑水县| 新和县| 客服| 潞城市| 吉木萨尔县| 巫溪县| 贵德县| 若尔盖县| 上蔡县| 安泽县| 隆子县| 安阳县| 喀什市| 宜城市| 乌恰县| 郯城县| 英吉沙县| 五莲县| 西充县| 洛浦县| 黑龙江省| 惠州市| 凤翔县| 海晏县| 临汾市| 平谷区| 南开区|