Java實現(xiàn)的分頁工具類與用法示例
本文實例講述了Java實現(xiàn)的分頁工具類與用法。分享給大家供大家參考,具體如下:
今天閑來沒事,寫了一個頁面的分頁工具類,具有很好的兼容性與實用性哦。
不管怎么樣,先來瞧一瞧:
package com.bw.utils;
/**
* 分頁工具類
*
* @author H.ros
*
*/
public class PageUtils2 {
// 當前頁(從頁面獲取的當前頁碼,未計算)
private int currentPage;
// 前一頁
private int prevPage;
// 下一頁
private int nextPage;
// 尾頁
private int lastPage;
// 總記錄數(shù)
private int count;
// 每頁的條數(shù)
private int pageSize = 3;
// 分頁計入數(shù)(使用時調用的初始頁,計算后)
private int pageRecord;
// 頁面分頁模型(傳入頁面使用的DOM)
private String page;
// 有參構造器
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;
}
}
// 初始化并矯正當前頁(防止外部訪問出錯)
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;
}
}
// 初始化分頁計入數(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;
}
}
使用方法:
里面很多的地方都會計算好,使用時只用傳入三個參數(shù):
//currentPage是從前臺傳來的當前頁碼,count是數(shù)據(jù)的總統(tǒng)計數(shù),pageSize是每頁顯示的條數(shù), //count必須是數(shù)據(jù)中的查詢結果哦。這樣才能與前臺保持頁碼一致。 PageUtils util = new PageUtils(currentPage, count, pageSize);
然后直接將它的一個Page屬性傳入前臺頁面就行:
mv.addObject("page", util.getPage());
在前臺頁面直接用EL表達式接收解析:
${page}
在js中要設置一個函數(shù):
function page(){}
//因為工具類中添加的是onclick的js點擊事件,我們必須使用js的一個函數(shù)來進行后臺處理;
//如果不想使用,在工具類中刪除即可。
若有不對的地方,還望大神們不吝賜教。
更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
Springboot整合redis實現(xiàn)發(fā)布訂閱功能介紹步驟
發(fā)布訂閱作為一種設計思想在很多開源組件中都有體現(xiàn),比如大家熟知的消息中間件等,可謂把發(fā)布訂閱這一思想體現(xiàn)的淋漓盡致了2022-09-09
IntelliJ IDEA報錯Error:java: Compilation failed: internal java
今天小編就為大家分享一篇關于IntelliJ IDEA報錯Error:java: Compilation failed: internal java compiler error的解決辦法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
Java構造方法實例詳解(動力節(jié)點java學院整理)
其實java構造方法很簡單,下面通過示例給大家分享java構造方法,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-04-04
spring boot使用自定義配置的線程池執(zhí)行Async異步任務
這篇文章主要介紹了spring boot使用自定義配置的線程池執(zhí)行Async異步任務,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01
mybatis插件pageHelper實現(xiàn)分頁效果
這篇文章主要為大家詳細介紹了mybatis插件pageHelper實現(xiàn)分頁效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12
SpringBoot切面實現(xiàn)token權限校驗詳解
這篇文章主要介紹了SpringBoot切面實現(xiàn)token權限校驗詳解,要實現(xiàn)權限校驗,首先數(shù)據(jù)表和實體類上需要有權限字段,我的表中permission和gender是通過外鍵約束permission表和gender表實現(xiàn)枚舉的,因為可拓展性更好,需要的朋友可以參考下2024-01-01

