Java實(shí)現(xiàn)的分頁工具類與用法示例
本文實(shí)例講述了Java實(shí)現(xiàn)的分頁工具類與用法。分享給大家供大家參考,具體如下:
今天閑來沒事,寫了一個頁面的分頁工具類,具有很好的兼容性與實(shí)用性哦。
不管怎么樣,先來瞧一瞧:
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ù)(使用時調(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(); } // 初始化三個重要元素 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)前頁(防止外部訪問出錯) 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; } }
使用方法:
里面很多的地方都會計(jì)算好,使用時只用傳入三個參數(shù):
//currentPage是從前臺傳來的當(dāng)前頁碼,count是數(shù)據(jù)的總統(tǒng)計(jì)數(shù),pageSize是每頁顯示的條數(shù), //count必須是數(shù)據(jù)中的查詢結(jié)果哦。這樣才能與前臺保持頁碼一致。 PageUtils util = new PageUtils(currentPage, count, pageSize);
然后直接將它的一個Page屬性傳入前臺頁面就行:
mv.addObject("page", util.getPage());
在前臺頁面直接用EL表達(dá)式接收解析:
${page}
在js中要設(shè)置一個函數(shù):
function page(){} //因?yàn)楣ぞ哳愔刑砑拥氖莖nclick的js點(diǎn)擊事件,我們必須使用js的一個函數(shù)來進(jìn)行后臺處理; //如果不想使用,在工具類中刪除即可。
若有不對的地方,還望大神們不吝賜教。
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
springboot2 生產(chǎn)部署注意事項(xiàng)及示例代碼
這篇文章主要介紹了springboot2 生產(chǎn)部署注意事項(xiàng)及示例代碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04Springboot整合redis實(shí)現(xiàn)發(fā)布訂閱功能介紹步驟
發(fā)布訂閱作為一種設(shè)計(jì)思想在很多開源組件中都有體現(xiàn),比如大家熟知的消息中間件等,可謂把發(fā)布訂閱這一思想體現(xiàn)的淋漓盡致了2022-09-09IntelliJ IDEA報(bào)錯Error:java: Compilation failed: internal java
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA報(bào)錯Error:java: Compilation failed: internal java compiler error的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10Java構(gòu)造方法實(shí)例詳解(動力節(jié)點(diǎn)java學(xué)院整理)
其實(shí)java構(gòu)造方法很簡單,下面通過示例給大家分享java構(gòu)造方法,非常不錯,具有參考借鑒價(jià)值,需要的朋友參考下2017-04-04spring boot使用自定義配置的線程池執(zhí)行Async異步任務(wù)
這篇文章主要介紹了spring boot使用自定義配置的線程池執(zhí)行Async異步任務(wù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01mybatis插件pageHelper實(shí)現(xiàn)分頁效果
這篇文章主要為大家詳細(xì)介紹了mybatis插件pageHelper實(shí)現(xiàn)分頁效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12SpringBoot切面實(shí)現(xiàn)token權(quán)限校驗(yàn)詳解
這篇文章主要介紹了SpringBoot切面實(shí)現(xiàn)token權(quán)限校驗(yàn)詳解,要實(shí)現(xiàn)權(quán)限校驗(yàn),首先數(shù)據(jù)表和實(shí)體類上需要有權(quán)限字段,我的表中permission和gender是通過外鍵約束permission表和gender表實(shí)現(xiàn)枚舉的,因?yàn)榭赏卣剐愿?需要的朋友可以參考下2024-01-01