<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Edzy_Java

      BlogJava :: 首頁 ::  ::  ::  :: 管理 ::
      58 隨筆 :: 12 文章 :: 11 評論 :: 0 Trackbacks

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

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

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

    3.在你的JSP頁面中:
    ?? <%
    ????????? 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>

    <!-- 顯示分頁工具欄 -->


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


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



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


    import java.util.*;


    /**
    ?* <p>Title: PageResultSet</p>
    ?*
    ?* <p>Description:分頁類 </p>
    ?*
    ?* <p>Copyright: Copyright (c) 2004</p>
    ?*
    ?* <p>Company:youngor-studio(http://www.54youngor.com) </p>
    ?* @author:伍維波
    ?* @version 1.0
    ?*/
    public class PageResultSet {
    ??? /**
    ???? * 分頁數據
    ???? */
    ??? private Collection data = null;
    ??? /**
    ???? * 當前頁
    ???? */
    ??? private int curPage;
    ??? /**
    ???? * 每頁顯示的記錄數
    ???? */
    ??? private int pageSize;
    ??? /**
    ???? * 記錄行數
    ???? */
    ??? private int rowsCount;
    ??? /**
    ???? * 頁數
    ???? */
    ??? 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:返回當前的頁數
    ???? *
    ???? * @return int
    ???? */
    ??? public int getCurPage() {
    ??????? return curPage;
    ??? }


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


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


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


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


    ??? /**
    ???? * 第一頁
    ???? * @return boolean
    ???? */
    ??? public boolean isLast() {
    ??????? return (curPage==pageCount)?true:false;
    ??? }
    ??? /**
    ???? * 獲取當前頁數據
    ???? * @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+="首頁 上一頁&nbsp;";
    ??????? else
    ??????? {
    ??????????? str+="<a href='"+fileName+temp+"cur_page=1'>首頁</a>&nbsp;";
    ??????????? str+="<a href='"+fileName+temp+"cur_page="+(curPage-1)+"'>上一頁</a>&nbsp;";
    ??????? }
    ??????? if(isLast())
    ??????????? str+="下一頁 尾頁&nbsp;";
    ??????? else
    ??????? {
    ??????????? str+="<a href='"+fileName+temp+"cur_page="+(curPage+1)+"'>下一頁</a>&nbsp;";
    ??????????? str+="<a href='"+fileName+temp+"cur_page="+pageCount+"'>尾頁</a>&nbsp;";
    ??????? }
    ??????? str+="&nbsp;共<b>"+rowsCount+"</b>條記錄&nbsp;";
    ??????? str+="&nbsp;轉到<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+"頁</option>";
    ??????????? else
    ??????????????? str+="<option value='"+i+"'>第"+i+"頁</option>";
    ??????? }
    ??????? str+="</select></p></form>";
    ??????? return str;
    ??? }
    }

    posted on 2006-11-15 21:15 lbfeng 閱讀(918) 評論(3)  編輯  收藏 所屬分類: JSP&Servlet技術

    評論

    # re: 用JAVA實現一個jsp分頁 2007-10-11 20:58 李賢
    UserBO userBO=new UserBO();

    UserBO 是什么類阿?
    能給出代碼么?

    希望能盡快告訴我
      回復  更多評論
      

    # re: 用JAVA實現一個jsp分頁 2007-12-18 09:13 禮必風
    顯然,UserBO是一個JavaBean撒!  回復  更多評論
      

    # re: 用JAVA實現一個jsp分頁 2007-12-22 16:41 游客
    你寫的這個分頁與OOP的思想結合不夠,
    建議:(1)寫一個javaBean:Page.java其中包含主要的三個基本屬性.
    其中包含:
    當前頁currentPageNo,最后頁lastPageNo,頁內容pageContent(集合)
    (2)寫一個接口:PageIf.java規定幾個其本頁操作方法.
    void Page getCurrentPage();
    void prevPage();
    void nextPage();
    void lastPage();
    void jumpToPage(int pageNo);
    (3)寫一個PageIf的實現類,可用spring進行配置.
    PageImpl.java包含以下屬性(要有set方法)
    private String tableName;
    private String className;
    private int pageSize;//頁大小
    private Page page=new Page();
    private Dao pageDao; //(通用dao)
    方法的實現(略)
    (4)寫一個頁控制器類,用servlet,struts,spring都可以,用以根據請求調用頁
    相應的操作方法.取得當前頁page并放在session中,返回視圖.
    (5)寫視圖頁,比如jsp,
    <a href="page.do?operate=nextPage">下一頁</a>
    共${page.lastPageNo}頁
      回復  更多評論
      

    主站蜘蛛池模板: 亚洲一区二区三区免费| 福利免费观看午夜体检区| 久久久久久毛片免费看| 免费国产高清毛不卡片基地| 99亚洲男女激情在线观看| 亚洲欧美成人av在线观看| 亚洲国产欧美日韩精品一区二区三区| 亚洲人成www在线播放| 亚洲成a人片在线不卡一二三区| 亚洲精品国产精品| 亚洲国产精品无码中文lv| 色五月五月丁香亚洲综合网| 老司机精品视频免费| 伊人久久国产免费观看视频| 三级网站在线免费观看| 久久青草91免费观看| 免费观看黄色的网站| 热久久精品免费视频| 亚洲精品视频免费观看| 亚洲精品无码mv在线观看网站 | 三年片在线观看免费观看高清电影| 免费看韩国黄a片在线观看| 在线免费观看韩国a视频| 免费很黄很色裸乳在线观看| 在线精品亚洲一区二区小说| 亚洲国产精品嫩草影院在线观看| 老汉色老汉首页a亚洲| 亚洲中文精品久久久久久不卡| 日韩国产精品亚洲а∨天堂免| 人体大胆做受免费视频| 国产偷伦视频免费观看| 国产精品1024永久免费视频| 韩国免费三片在线视频| 亚洲一区二区视频在线观看| 久久亚洲精品成人综合| 亚洲日本VA午夜在线影院| j8又粗又长又硬又爽免费视频| 嫩草在线视频www免费观看| 成年女人看片免费视频播放器| 亚洲国产精品无码久久久久久曰| 日本红怡院亚洲红怡院最新|