溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用Java怎么實(shí)現(xiàn)一個(gè)分頁工具類

發(fā)布時(shí)間:2021-04-06 17:26:44 來源:億速云 閱讀:242 作者:Leah 欄目:編程語言

這篇文章給大家介紹使用Java怎么實(shí)現(xiàn)一個(gè)分頁工具類,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

package com.bw.utils;
/**
 * 分頁工具類
 *
 * @author H.ros
 *
 */
public class PageUtils2 {
    // 當(dāng)前頁(從頁面獲取的當(dāng)前頁碼,未計(jì)算)
    private int currentPage;
    // 前一頁
    private int prevPage;
    // 下一頁
    private int nextPage;
    // 尾頁
    private int lastPage;
    // 總記錄數(shù)
    private int count;
    // 每頁的條數(shù)
    private int pageSize = 3;
    // 分頁計(jì)入數(shù)(使用時(shí)調(diào)用的初始頁,計(jì)算后)
    private int pageRecord;
    // 頁面分頁模型(傳入頁面使用的DOM)
    private String page;
    // 有參構(gòu)造器
    public PageUtils2(String currentPage, int count, int pageSize) {
        init(currentPage, count, pageSize);
        initLastPage();
        initCurrentPage();
        initPrevPage();
        initNextPage();
        initPageRecord();
        initPage();
    }
    // 初始化三個(gè)重要元素
    private void init(String currentPage, int count, int pageSize) {
        if (currentPage == null || currentPage == "" || currentPage == "0") {
            currentPage = "1";
        }
        this.currentPage = Integer.parseInt(currentPage);
        this.count = count;
        this.pageSize = pageSize;
    }
    // 初始化尾頁
    private void initLastPage() {
        if (count % pageSize == 0) {
            lastPage = count / pageSize;
        } else {
            lastPage = count / pageSize + 1;
        }
    }
    // 初始化并矯正當(dāng)前頁(防止外部訪問出錯(cuò))
    private void initCurrentPage() {
        if (currentPage < 1) {
            currentPage = 1;
        } else if (currentPage > lastPage) {
            currentPage = lastPage;
        }
    }
    // 初始化上一頁
    private void initPrevPage() {
        if (currentPage != 1) {
            prevPage = currentPage - 1;
        }else{
            prevPage = 1;
        }
    }
    // 初始化下一頁
    private void initNextPage() {
        if (currentPage != lastPage) {
            nextPage = currentPage + 1;
        }else{
            nextPage = lastPage;
        }
    }
    // 初始化分頁計(jì)入數(shù)
    private void initPageRecord() {
        pageRecord = (currentPage - 1) * pageSize;
    if(pageRecord < 0){
      pageRecord = 0;
    }
    }
    // 初始化頁面分頁模型(按鍵中的class屬性是bootstrap的樣式)
    private void initPage() {
        page = "第" + currentPage + "/" + lastPage + "頁,共" + count + "條記錄。";
        page += "<input type='button' value='首頁' οnclick='page(1)' class='btn btn-sm'/>";
        page += "<input type='button' value='上一頁' οnclick='page(" + prevPage + ")' class='btn btn-sm'/>";
        page += "<input type='button' value='下一頁' οnclick='page(" + nextPage + ")' class='btn btn-sm'/>";
        page += "<input type='button' value='尾頁' οnclick='page(" + lastPage + ")' class='btn btn-sm'/>";
    }
    /*
     * 對外訪問通道
     */
    public int getCurrentPage() {
        return currentPage;
    }
    public int getPrevPage() {
        return prevPage;
    }
    public int getNextPage() {
        return nextPage;
    }
    public int getLastPage() {
        return lastPage;
    }
    public int getCount() {
        return count;
    }
    public int getPageSize() {
        return pageSize;
    }
    public int getPageRecord() {
        return pageRecord;
    }
    public String getPage() {
        return page;
    }
}

使用方法:

里面很多的地方都會(huì)計(jì)算好,使用時(shí)只用傳入三個(gè)參數(shù):

//currentPage是從前臺傳來的當(dāng)前頁碼,count是數(shù)據(jù)的總統(tǒng)計(jì)數(shù),pageSize是每頁顯示的條數(shù),
//count必須是數(shù)據(jù)中的查詢結(jié)果哦。這樣才能與前臺保持頁碼一致。
PageUtils util = new PageUtils(currentPage, count, pageSize);

然后直接將它的一個(gè)Page屬性傳入前臺頁面就行:

mv.addObject("page", util.getPage());

在前臺頁面直接用EL表達(dá)式接收解析:

${page}

在js中要設(shè)置一個(gè)函數(shù):

function page(){}
//因?yàn)楣ぞ哳愔刑砑拥氖莖nclick的js點(diǎn)擊事件,我們必須使用js的一個(gè)函數(shù)來進(jìn)行后臺處理;
//如果不想使用,在工具類中刪除即可。

關(guān)于使用Java怎么實(shí)現(xiàn)一個(gè)分頁工具類就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI