<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  回復  更多評論
      

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


    網站導航:
     
    <2007年2月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728123
    45678910

    常用鏈接

    留言簿(10)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    java

    搜索

    •  

    最新評論


    主站蜘蛛池模板: 51在线视频免费观看视频| 亚洲小说区图片区| 日韩在线免费看网站| 一个人免费日韩不卡视频| www.av在线免费观看| 亚洲色大成WWW亚洲女子| 久久99亚洲网美利坚合众国| 亚洲精品成人网站在线观看| 免费v片视频在线观看视频| 91嫩草国产在线观看免费| 777成影片免费观看| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 亚洲国产精品一区二区第四页| 在线观看无码AV网站永久免费| 国产精品白浆在线观看免费| 七次郎成人免费线路视频 | 又粗又大又猛又爽免费视频| 免费一本色道久久一区| 91九色老熟女免费资源站| 无码人妻一区二区三区免费n鬼沢| 9久热这里只有精品免费| 一个人看的免费观看日本视频www| 亚洲av无一区二区三区| 亚洲精品又粗又大又爽A片| 亚洲国产成人91精品| 亚洲毛片基地日韩毛片基地| 亚洲一区综合在线播放| 亚洲国产精品不卡在线电影| 亚洲国产一区二区三区青草影视| 亚洲阿v天堂在线| 久久久久久a亚洲欧洲AV| 亚洲国产一区在线| 亚洲经典在线中文字幕| 亚洲妇女水蜜桃av网网站| 亚洲一级毛片在线观| 国产亚洲国产bv网站在线| 男人天堂2018亚洲男人天堂| 亚洲免费网站观看视频| 亚洲日本成本人观看| 最新亚洲人成网站在线观看| 国产精品亚洲综合|