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

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

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


    posts - 15,  comments - 34,  trackbacks - 27
    一簡介
    Pager-taglib,是一套分頁標簽庫,可以靈活地實現多種不同風格的分頁導航頁面,并且可以很好的與服務器分頁邏輯分離支持多種風格的分頁顯示。通過這些標簽的不同的組合,會形成多種不一樣的分頁頁面,風格各異,它自帶的DEMO就有七種左右的分頁風格,包括Google的分頁風格。而需要訂制自已的風格的分頁頁面也非常簡單。
    分頁方式有兩種:
    一種是從Action中得到一個List,在頁面上通過<pg:item>進行自動分頁。
    第二種是通過把 pageSize,pageNo兩參數傳給后臺進行數據庫分頁。

    本文只演示第二種數據庫分頁:普通form提交方式和對開源ajaxAnywhere的支持

    二、準備
    把pager-taglib.jar放到lib目錄下(僅此足亦,完全沒必要改web.xml什么的,還有官方war包中的東西都可以不要)

    <%@?taglib?uri="/WEB-INF/pager-taglib.tld"?prefix="pg"%>
    <%@?taglib?prefix="c"?uri="/WEB-INF/c.tld"%>



    三,form提交方式

    1.將公用的部分提出來單獨放在公共的jsp文件中pagination_tag.jsp

    <table?border=0?cellpadding=0?cellspacing=0?align=right>
    ????
    <tr?align=center?valign=top>
    ????????
    <pg:page?export="first,last">
    ????????????
    <td>
    ????????????????$
    {first}?-?${last}?of?${total}&nbsp;&nbsp;
    ????????????
    </td>
    ????????
    </pg:page>
    ????????
    <pg:first?export="pageUrl"?unless="current">
    ????????????
    <td>
    ????????????????
    <c:if?test="${pageUrl!=null?}">
    ????????????????????
    <A?HREF="${pageUrl}">?<b>[第一頁]</b>?</A>
    ????????????????
    </c:if>
    ????????????
    </td>
    ????????
    </pg:first>
    ????????
    <pg:prev?export="pageUrl"?ifnull="${true?}">
    ????????????
    <td?align=right>
    ????????????????
    <c:if?test="${pageUrl!=null?}">
    ????????????????????
    <A?HREF="${pageUrl}">?<b>[前一頁]&nbsp;</b>?</A>
    ????????????????
    </c:if>
    ????????????
    </td>
    ????????
    </pg:prev>
    ????????
    <pg:pages>
    ????????????
    <td?align=right>
    ????????????????
    <c:choose>
    ????????????????????
    <c:when?test="${pageNumber?==?currentPageNumber}">
    ????????????????????????
    <font?color=#A90A08>${pageNumber}&nbsp;</font>
    ????????????????????
    </c:when>
    ????????????????????
    <c:otherwise>
    ????????????????????????
    <A?HREF="${pageUrl}">${pageNumber}&nbsp;</A>
    ????????????????????
    </c:otherwise>
    ????????????????
    </c:choose>
    ????????????
    </td>
    ????????
    </pg:pages>
    ????????
    <pg:next?export="pageUrl"?ifnull="${true?}">
    ????????????
    <td>
    ????????????????
    <c:if?test="${pageUrl!=null?}">
    ????????????????????
    <A?HREF="${pageUrl}">?<b>[下一頁]</b>?</A>
    ????????????????
    </c:if>
    ????????????
    </td>
    ????????
    </pg:next>
    ????????
    <pg:last?export="pageUrl"?unless="current">
    ????????????
    <td>
    ????????????????
    <c:if?test="${pageUrl!=null?}">
    ????????????????????
    <A?HREF="${pageUrl}">?<b>[最后頁]</b>?</A>
    ????????????????
    </c:if>
    ????????????
    </td>
    ????????
    </pg:last>
    ????
    </tr>
    </table>

    2.使用方法
    <pg:pager?url="/CrmWeb/jsp/integrateAccept/custOrder.do"?items="${total}"?maxPageItems="${pageSize}"
    ?maxIndexPages
    ="${5}"?isOffset="${true}"?export="offset,currentPageNumber=pageNumber"
    ?scope
    ="request">
    ?
    <pg:param?name="method"?value="qryOrder"?/>
    <table>?????
    <c:forEach var="vo" items="${custOrders}">
    <tr>
    <td?>...</td>?
    </tr>
    </c:forEach>
    </table>??
    <pg:index>
    <jsp:include?page="pagination_tag.jsp"?flush="true"?/>
    ?
    </pg:index>
    </pg:pager>


    四.對ajaxAnywhere的分頁支持

    1.將公用的部分提出來單獨放在公共的jsp文件中pagination_tag_ajax.jsp

    <table?border=0?cellpadding=0?cellspacing=0?align=right>
    ????
    <tr?align=center?valign=top>
    ????????
    <pg:page?export="first,last">
    ????????????
    <td>
    ????????????????$
    {first}?-?${last}?of?${total}&nbsp;&nbsp;
    ????????????
    </td>
    ????????
    </pg:page>
    ????????
    <pg:first?export="pageUrl"?unless="current">
    ????????????
    <td>
    ????????????????
    <c:if?test="${pageUrl!=null?}">
    ????????????????????
    <A?HREF="#"?onClick="javascript:{${ajaxInvoke}('${pageUrl}');}">?<b>[μúò?ò3]</b>?</A>
    ????????????????
    </c:if>
    ????????????
    </td>
    ????????
    </pg:first>
    ????????
    <pg:prev?export="pageUrl"?ifnull="${true?}">
    ????????????
    <td?align=right>
    ????????????????
    <c:if?test="${pageUrl!=null?}">
    ????????????????????
    <A?HREF="#"?onClick="javascript:{${ajaxInvoke}('${pageUrl}');}">?<b>[?°ò?ò3]&nbsp;</b>?</A>
    ????????????????
    </c:if>
    ????????????
    </td>
    ????????
    </pg:prev>
    ????????
    <pg:pages>
    ????????????
    <td?align=right>
    ????????????????
    <c:choose>
    ????????????????????
    <c:when?test="${pageNumber?==?currentPageNumber}">
    ????????????????????????
    <font?color=#A90A08>${pageNumber}&nbsp;</font>
    ????????????????????
    </c:when>
    ????????????????????
    <c:otherwise>
    ????????????????????????
    <A?HREF="#"?onClick="javascript:{${ajaxInvoke}('${pageUrl}');}">${pageNumber}&nbsp;</A>
    ????????????????????
    </c:otherwise>
    ????????????????
    </c:choose>
    ????????????
    </td>
    ????????
    </pg:pages>
    ????????
    <pg:next?export="pageUrl"?ifnull="${true?}">
    ????????????
    <td>
    ????????????????
    <c:if?test="${pageUrl!=null?}">
    ????????????????????
    <A?HREF="#"?onClick="javascript:{${ajaxInvoke}('${pageUrl}');}">?<b>[??ò?ò3]</b>?</A>
    ????????????????
    </c:if>
    ????????????
    </td>
    ????????
    </pg:next>
    ????????
    <pg:last?export="pageUrl"?unless="current">
    ????????????
    <td>
    ????????????????
    <c:if?test="${pageUrl!=null?}">
    ????????????????????
    <A?HREF="#"?onClick="javascript:{${ajaxInvoke}('${pageUrl}');}">?<b>[×?oóò3]</b>?</A>
    ????????????????
    </c:if>
    ????????????
    </td>
    ????????
    </pg:last>
    ????
    </tr>
    </table>

    2.使用方法

    <%@?taglib?prefix="aa"?uri="/WEB-INF/ajaxanywhere.tld"%>
    <script?src="<c:url?value="/js/aa.js"/>"></script>
    <c:set?var="ajaxInvoke"?scope="request">ajaxPaginationInvoke</c:set>
    <aa:zone?name="next_step">
    <pg:pager?url="/CrmWeb/jsp/integrateAccept/custOrder.do"?items="${total}"?maxPageItems="${pageSize}"
    ?maxIndexPages
    ="${5}"?isOffset="${true}"?export="offset,currentPageNumber=pageNumber"
    ?scope
    ="request">
    ?
    <pg:param?name="method"?value="qryOrder"?/>
    <table>?
    ??????......
    <c:forEach var="vo" items="${custOrders}">
    <tr>
    <td?>...</td>?
    </tr>
    </c:forEach>
    </table>??
    <pg:index>
    <jsp:include?page="pagination_tag_ajax.jsp"?flush="true"?/>
    ?
    </pg:index>
    </pg:pager>
    </aa:zone>
    <script>
    ajaxAnywhere.formName?
    =?"ajax_form";
    function?ajaxPaginationInvoke(url){
    ????document.frames['ajax_form'].action
    =url;
    ????ajaxAnywhere.submitAJAX();
    }

    ajaxAnywhere.onAfterResponseProcessing
    =?function?(){
    }

    <script>

    效果見下圖
    ?_pagination_ajaxanywhere.jpg

    五.標簽講解:從頁面里可以看到,這里使用了幾個標簽

    1、<pg:pager>,在這個標簽庫里就充當著一個領袖的作用,一切子標簽都在它里面工作。就以上出現的參數進行解釋一下:
    items:數據的紀錄數
    maxPageItems:顯示最多的紀錄數/頁
    maxIndexPages:顯示最多的分頁數/次,如設為5的話,則會出現這樣的情況 1 2 3 4 5 .或 3 4 5 6 7 這樣的形式,其實她自帶的DEMO都喜歡把頁數展現出來排成一排。
    isOffset:與pg:item配套使用
    export:這個屬性比較重要,文檔也對此作好相對長篇幅的說明。這個屬性是讓標簽給你暴露什么變量,當然這些變量是有選擇的,如在Pager標簽里,可以暴露出來的變量有pageOffset及pageNumber,即頁碼偏移量及頁碼。通過這兩個變量名,可以在Jsp或Java里面從Request里獲得。Export屬性接受的值還有表達式,如currentPage=pageNumber表示,把pageNumber的值暴露出來,并賦給一個叫CurrentPage的變量,這個變量將被保存到Request中,在Jsp或Java中可以得到。
    scope:咳。還需要講么?
    2、<pg:param>這個標簽很有用,用來設置將要加入到URL的參數。使用Name屬性指定即可。
    3、<pg:index>這個標簽說明分頁條顯示的內容,在這里你可以設置各種風格的分頁顯示方式。
    4, <pg:prev> , <pg:pages>,<pg:next>這些標簽都是導航標簽顧名思義,你一看例子就明白了,我就不用講了吧。

    posted on 2007-02-05 22:05 jacky 閱讀(4937) 評論(6)  編輯  收藏

    FeedBack:
    # 有點暈了[未登錄]
    2007-12-12 18:05 | 小天
    我現在要做的是在當前頁面做以個模糊查詢,然后在把查出來的東西在這個頁面上顯示出來,我用的是struts來作的,我在action中已經set list(也就是查到的所有東西) 和total(一共多少紀錄),可我在前臺jsp用你的方法弄出不來結果啊,<c:forEach var="vo" items="${custOrders}">這里的custOrders是List么 還是什么 ?  回復  更多評論
      
    # 有點暈了[未登錄]
    2007-12-12 18:09 | 小天
    能教教我么??我msn t281277005@live.jp  回復  更多評論
      
    # 有點暈了[未登錄]
    2007-12-12 18:14 | 小天
    url="/CrmWeb/jsp/integrateAccept/custOrder.do" 你的這個是干什么用的,我想作以個text 然后一點按鈕就到action中然后把東西用分頁顯示出來。。
    我剛學struts不久。  回復  更多評論
      
    # re: 分頁pager-taglib使用指南
    2007-12-25 01:10 | 路過
    @小天
    custOrders<List>

    url="/CrmWeb/jsp/integrateAccept/custOrder.do" 就是分頁的Action呀

    :)  回復  更多評論
      
    # 分頁pager-taglib使用指南[未登錄]
    2008-01-31 09:39 | 小天
    @路過
    謝謝;?。?!  回復  更多評論
      
    # re: 分頁pager-taglib使用指南
    2008-04-17 17:05 | 王建
    您好 可以把 源代碼 發給我一份嗎?
    Email : wangjian3q@163.com  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2008年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(10)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    java

    搜索

    •  

    最新評論


    主站蜘蛛池模板: 国产日韩亚洲大尺度高清| 亚洲精品无码久久久影院相关影片| 国产亚洲综合精品一区二区三区| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 人与禽交免费网站视频| 亚洲国产精品lv| 91免费在线播放| 亚洲视频一区二区在线观看| 国产香蕉免费精品视频| 风间由美在线亚洲一区| 亚洲日本中文字幕天堂网| A级毛片高清免费视频在线播放| 91亚洲导航深夜福利| 成年大片免费视频| 一级毛片a免费播放王色电影| 亚洲大尺度无码专区尤物| 91成人免费观看网站| 色窝窝亚洲av网| 亚洲AV无码专区在线播放中文| 在线视频免费观看爽爽爽| 老司机亚洲精品影院在线观看| 亚洲三区在线观看无套内射| 88xx成人永久免费观看| 久久亚洲AV成人无码国产最大| 久久亚洲国产精品五月天婷| 3344免费播放观看视频| 国产精品亚洲专区一区| 亚洲欧洲国产精品你懂的| 在线免费观看a级片| 两个人的视频www免费| 亚洲精品国产精品国自产网站| 亚洲国产aⅴ综合网| 无码乱肉视频免费大全合集| 一区二区三区免费在线视频 | 久久亚洲AV无码西西人体| 在线免费观看亚洲| 永久免费无码日韩视频| 亚洲精品一区二区三区四区乱码| 国产成人免费a在线资源| 久久久免费精品re6| 美女露100%胸无遮挡免费观看|