程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java(基於Struts2) 分頁完成代碼

Java(基於Struts2) 分頁完成代碼

編輯:關於JAVA

Java(基於Struts2) 分頁完成代碼。本站提示廣大學習愛好者:(Java(基於Struts2) 分頁完成代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是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>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved