欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java(基于Struts2) 分頁實現(xiàn)代碼

 更新時間:2013年10月02日 16:25:33   作者:  
這篇文章介紹了Java(基于Struts2) 分頁實現(xiàn)代碼,有需要的朋友可以參考一下

分頁實現(xiàn)的基本過程是這樣的:

1. 設(shè)置自己的分頁器的基本參數(shù)(可以從配置文件中讀?。?/P>

  ■每頁顯示的記錄條數(shù)

  ■每次最多顯示多少頁

2. 編寫設(shè)置分頁器其他參數(shù)的函數(shù)

    主要參數(shù)有以下幾個:

    總記錄條數(shù)

    總頁數(shù)

    當(dāng)前頁號:現(xiàn)在顯示的頁數(shù)

    每頁顯示的記錄條數(shù)

    當(dāng)前頁開始行(第一行是0行)

    第一頁頁號

    最后頁頁號

    下一頁頁號

    上一頁頁號

    畫面上顯示的起始頁號

    畫面上顯示的結(jié)束頁號

    參數(shù)基本實現(xiàn)原理:設(shè)置以上各個參數(shù),實際上只需要三個參數(shù)就可以對所有的其他變量進(jìn)行設(shè)置,即總記錄條數(shù),每頁顯示記錄數(shù),每次最多顯示多少頁。

    分頁器的代碼實現(xiàn)如下(省略get,set函數(shù)):

    Page.java

復(fù)制代碼 代碼如下:

{
        this.onePageSize = Integer.valueOf(PageResource.get(PageResource.ONE_PAGE_SIZE));
        this.displayPageCount = Integer.valueOf(PageResource.get(PageResource.DISPLAY_PAGE_COUNT)) - 1;
    }

    /** 頁號式導(dǎo)航, 最多顯示頁號數(shù)量為displayPageCount+1 */
    private int displayPageCount;

    /** 每頁顯示的記錄條數(shù) */
    private int onePageSize;

    /** 總記錄條數(shù) */
    private int totalRecord;

    /** 總頁數(shù) */
    private int totalPage;

    /** 當(dāng)前頁號 */
    private int currentPageNum = 1;

    /** 當(dāng)前頁開始行(第一行是0行) */
    private int currentStartRow;

    /** 第一頁頁號 */
    private int firstPageNum = 1;

    /** 最后頁頁號 */
    private int lastPageNum;

    /** 下一頁頁號 */
    private int nextPageNum;

    /** 上一頁頁號 */
    private int prevPageNum;

    /** 頁號式導(dǎo)航 起始頁號 */
    private int startPageNum;

    /** 頁號式導(dǎo)航 結(jié)束頁號 */
    private int endPageNum;

    /**
     *
     * @param onePageSize
     * @param currentPageNum
     * @param totalRecord
     */
    public Page(int totalRecord) {
        this.totalRecord = totalRecord;
        this.setPageInfo();
    }

    public Page() {
    }

    public void setPageInfo() {
        this.totalPage = (totalRecord + onePageSize - 1) / onePageSize;
        this.currentPageNum = Math.max(1, Math.min(currentPageNum, totalPage));

        this.lastPageNum = this.totalPage;
        this.nextPageNum = Math.min(this.totalPage, this.currentPageNum + 1);
        this.prevPageNum = Math.max(1, this.currentPageNum - 1);

        // 分頁控制信息
        this.currentStartRow = (this.currentPageNum - 1) * onePageSize;

        startPageNum = Math.max(this.currentPageNum - displayPageCount / 2,
                firstPageNum);
        endPageNum = Math.min(startPageNum + displayPageCount, lastPageNum);
        if (endPageNum - startPageNum < displayPageCount) {
            startPageNum = Math.max(endPageNum - displayPageCount, 1);
        }
    }


3. 編寫前端代碼(以Struts2為例)

當(dāng)在前臺點擊各個跳轉(zhuǎn)頁面的鏈接時,只需要將要跳轉(zhuǎn)到的頁號和總頁數(shù)傳給后臺,后臺會重新更新分頁器,進(jìn)而實現(xiàn)頁碼的跳轉(zhuǎn)。

復(fù)制代碼 代碼如下:

<div>
            <div>
                總頁數(shù):
                <s:property value="#request.p.totalPage" />
                總記錄數(shù):
                <s:property value="#request.p.totalRecord" />
            </div>
            <s:url id="firstURL" action="PageAction!toPage">
                <s:param name="p.currentPageNum">
                    <s:property value="#request.p.firstPageNum" />
                </s:param>
                <s:param name="p.totalRecord">
                    <s:property value="#request.p.totalRecord" />
                </s:param>
            </s:url>
            <s:a href="%{firstURL}">首頁</s:a>

            <s:url id="prev" action="PageAction!toPage">
                <s:param name="p.currentPageNum">
                    <s:property value="#request.p.prevPageNum" />
                </s:param>
                <s:param name="p.totalRecord">
                    <s:property value="#request.p.totalRecord" />
                </s:param>
            </s:url>
            <s:a href="%{prev}">上一頁</s:a>

            <s:bean name="org.apache.struts2.util.Counter" id="counter">
                <s:param name="first" value="p.startPageNum" />
                <s:param name="last" value="p.endPageNum" />
                <s:iterator var="pageNum">
                    <s:if test="p.currentPageNum==#pageNum">
                        <s:property />
                    </s:if>
                    <s:else>
                        <s:url id="page" action="PageAction!toPage">
                            <s:param name="p.currentPageNum">
                                <s:property value="#pageNum" />
                            </s:param>
                            <s:param name="p.totalRecord">
                                <s:property value="#request.p.totalRecord" />
                            </s:param>
                        </s:url>
                        <s:a href="%{page}"><s:property /></s:a>
                    </s:else>
                </s:iterator>
            </s:bean>

            <s:url id="next" action="PageAction!toPage">
                <s:param name="p.currentPageNum">
                    <s:property value="#request.p.nextPageNum" />
                </s:param>
                <s:param name="p.totalRecord">
                    <s:property value="#request.p.totalRecord" />
                </s:param>
            </s:url>
            <s:a href="%{next}">下一頁</s:a>

         <s:url id="lastURL" action="PageAction!toPage">
                <s:param name="p.currentPageNum">
                    <s:property value="#request.p.lastPageNum" />
                </s:param>
                <s:param name="p.totalRecord">
                    <s:property value="#request.p.totalRecord" />
                </s:param>
            </s:url>
         <s:a href="%{lastURL}">尾頁</s:a>
        </div>

相關(guān)文章

  • java 線程方法join簡單用法實例總結(jié)

    java 線程方法join簡單用法實例總結(jié)

    這篇文章主要介紹了java 線程方法join簡單用法,結(jié)合實例形式總結(jié)分析了Java線程join方法的功能、原理及使用技巧,需要的朋友可以參考下
    2019-11-11
  • MybatisPlus 多租戶架構(gòu)(Multi-tenancy)實現(xiàn)詳解

    MybatisPlus 多租戶架構(gòu)(Multi-tenancy)實現(xiàn)詳解

    這篇文章主要介紹了MybatisPlus 多租戶架構(gòu)(Multi-tenancy)實現(xiàn)詳解,詳細(xì)的介紹了什么是多租戶架構(gòu)以及使用MybatisPlus實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • feign客戶端設(shè)置超時時間操作

    feign客戶端設(shè)置超時時間操作

    這篇文章主要介紹了feign客戶端設(shè)置超時時間操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • SpringBoot基于Shiro處理ajax請求代碼實例

    SpringBoot基于Shiro處理ajax請求代碼實例

    這篇文章主要介紹了SpringBoot基于Shiro處理ajax請求代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Java源碼解析CopyOnWriteArrayList的講解

    Java源碼解析CopyOnWriteArrayList的講解

    今天小編就為大家分享一篇關(guān)于Java源碼解析CopyOnWriteArrayList的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Log4net 日志記錄詳細(xì)介紹及應(yīng)用

    Log4net 日志記錄詳細(xì)介紹及應(yīng)用

    這篇文章主要介紹了Log4net 日志記錄詳細(xì)介紹及應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • SpringBoot單元測試沒有執(zhí)行的按鈕問題及解決

    SpringBoot單元測試沒有執(zhí)行的按鈕問題及解決

    這篇文章主要介紹了SpringBoot單元測試沒有執(zhí)行的按鈕問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • javaweb中Filter(過濾器)的常見應(yīng)用

    javaweb中Filter(過濾器)的常見應(yīng)用

    這篇文章主要介紹了javaweb中Filter的常見應(yīng)用,過濾器的使用方法,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 淺談Synchronized和Lock的區(qū)別

    淺談Synchronized和Lock的區(qū)別

    這篇文章主要介紹了淺談Synchronized和Lock的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 詳解Java 中泛型的實現(xiàn)原理

    詳解Java 中泛型的實現(xiàn)原理

    這篇文章主要介紹了詳解Java 中泛型的實現(xiàn)原理,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03

最新評論