一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java(基于Struts2) 分頁實現代碼

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

2019-10-15 10:31java代碼網 Java教程

這篇文章介紹了Java(基于Struts2) 分頁實現代碼,有需要的朋友可以參考一下

分頁實現的基本過程是這樣的:

1. 設置自己的分頁器的基本參數(可以從配置文件中讀取)

  ■每頁顯示的記錄條數

  ■每次最多顯示多少頁

2. 編寫設置分頁器其他參數的函數

    主要參數有以下幾個:

    總記錄條數

    總頁數

    當前頁號:現在顯示的頁數

    每頁顯示的記錄條數

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

    第一頁頁號

    最后頁頁號

    下一頁頁號

    上一頁頁號

    畫面上顯示的起始頁號

    畫面上顯示的結束頁號

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

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

    Page.java

 

復制代碼代碼如下:


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

    /** 頁號式導航, 最多顯示頁號數量為displayPageCount+1 */
    private int displayPageCount;

 

    /** 每頁顯示的記錄條數 */
    private int onePageSize;

    /** 總記錄條數 */
    private int totalRecord;

    /** 總頁數 */
    private int totalPage;

    /** 當前頁號 */
    private int currentPageNum = 1;

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

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

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

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

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

    /** 頁號式導航 起始頁號 */
    private int startPageNum;

    /** 頁號式導航 結束頁號 */
    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為例)

 

當在前臺點擊各個跳轉頁面的鏈接時,只需要將要跳轉到的頁號和總頁數傳給后臺,后臺會重新更新分頁器,進而實現頁碼的跳轉。

 

復制代碼代碼如下:


<div>
            <div>
                總頁數:
                <s:property value="#request.p.totalPage" />
                總記錄數:
                <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>

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产v日韩v欧美v精品专区 | 羲义嫁密着中出交尾gvg794 | 日本无卡码一区二区三区 | 美女被躁了在线观看视频 | 成人免费在线视频 | 色偷偷伊人| tiny4k欧美极品在线 | 我要看靠逼片 | 色综合天天综合网站中国 | 欧美丰满大乳大屁在线观看股 | 3p文两男一女办公室高h | 精品亚洲视频在线观看 | 美女福利视频午夜在线 | 青青青在线视频播放 | 好姑娘在线视频观看免费 | 思思玖玖| 无套暴躁白丝秘书 | 国产精品亚洲精品日韩已满 | 色美| 久久国产乱子伦免费精品 | 国产精品性视频免费播放 | 亚洲欧美国产精品久久久 | 欧美视频久久 | 四虎国产免费 | 狠狠的撞进去嗯啊h女强男视频 | 久久久久久久久女黄 | 国产成人高清精品免费5388密 | 日韩永久在线观看免费视频 | 久久国产伦子伦精品 | 日本护士撒尿xxxx18 | 国产亚洲综合精品一区二区三区 | 国产精品一区二区久久不卡 | 色婷婷激婷婷深爱五月老司机 | 免费精品在线视频 | 99久久免费看国产精品 | 欧美同性gayvidoes | 国产精自产拍久久久久久 | 2021福利视频 | 5g影院天天爽 | 糖心vlog视频永久破解版 | 日日干天天爽 |