PageBean:
- 基本需求:具有前臺頁面分頁所需的所有參數內容
- 特點:具有邏輯分頁功能
- 原理:利用List的subList實現對當前頁數據的截取
- 具體代碼如下:
package com.java.utils;
import java.io.Serializable;
import java.util.List;
public class PageBean<T> implements Serializable{
private static final long serialVersionUID = 787170437337348516L;
//每頁顯記錄的條數
private Integer pageSize;
//當前頁
private Integer currentPage;
//總頁數
private Integer totalPage;
//總記錄數
private Integer totalRecord;
//要顯示的數據
private List<T> dataList;
public PageBean() {
}
/**
* 邏輯分頁
* @param pageNum 當前頁
* @param pageSize 當前頁顯示的記錄條數數
* @param sourceList 所有數據集合
*/
public PageBean(Integer pageNum, Integer pageSize, List<T> sourceList){
//總記錄數
this.totalRecord = sourceList.size();
//每頁顯示的記錄條數
this.pageSize = pageSize;
//總頁數
this.totalPage = (this.totalRecord+this.pageSize-1)/this.pageSize;
//當前頁小於1則當前頁等於1
pageNum = pageNum >= 1 ? pageNum : 1;
//當前頁
this.currentPage = pageNum >= totalPage ? totalPage : pageNum;
//起始索引
Integer fromIndex = (this.currentPage-1) * this.pageSize;
//結束索引
Integer toIndex = this.pageSize*this.currentPage >= this.totalRecord ? this.totalRecord : this.pageSize*this.currentPage;
//當前頁顯示的記錄
this.dataList = sourceList.subList(fromIndex, toIndex);
}
/**
* 通過構造函數生成一個Pager對象
* @param currentPage 當前頁
* @param pageSize 當前頁顯示的記錄條數
* @param totalPage 總頁數
* @param totalRecord 總記錄數
* @param dataList 當前頁要顯示的數據
*/
public PageBean(Integer currentPage, Integer pageSize, Integer totalPage, Integer totalRecord, List<T> dataList) {
this.pageSize = pageSize;
this.currentPage = currentPage;
this.totalPage = totalPage;
this.totalRecord = totalRecord;
this.dataList = dataList;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getCurrentPage() {
return currentPage;
}
public void setCurrentPage(Integer currentPage) {
this.currentPage = currentPage;
}
public Integer getTotalPage() {
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public Integer getTotalRecord() {
return totalRecord;
}
public void setTotalRecord(Integer totalRecord) {
this.totalRecord = totalRecord;
}
public List<T> getDataList() {
return dataList;
}
public void setDataList(List<T> dataList) {
this.dataList = dataList;
}
}