/**
* 用于分页的工具类
*/
public class PageBean {
/** 前台传递的 */
private int currentPage;// 当前页
private int pageSize;// 每页显示条数
/** 查询数据库获取 */
private Long recordCount;// 总记录数
private List recordList;// 本页的数据列表
/** 计算出来的 */
private int pageCount;// 总页数
private int beginPageIndex;// 页面的开始索引
private int endPageIndex;// 页面的结束索引
/**
* 接收前4个属性的值.,计算
*
* @param pageCount 总页数
* @param beginPageIndex 每页条数
* @param endPageIndex 总条数
* @param recordList 页面列表数据
*/
public PageBean(int pageNum, int pageSize, Long recordCount, List recordList) {
this.currentPage = pageNum;
this.pageSize = pageSize;
this.recordCount = recordCount;
this.recordList = recordList;
// 计算总页数
if (recordCount % pageSize != 0) {// 总条数没有整除每页显示条数,那么总页数要加1
this.pageCount = recordCount.intValue() / pageSize + 1;
} else {
this.pageCount = recordCount.intValue() / pageSize;
}
// 计算页面上索引的起始和结束位置
if (pageCount <= 10) {// (1)总页数不超过10页
this.beginPageIndex = 1;
this.endPageIndex = pageCount;
} else {// (2)总页数超过10页,显示当前页面附近的10个页码(前4页+当前页+后5页数)
this.beginPageIndex = this.currentPage - 4;
this.endPageIndex = this.currentPage + 5;
//当前面少于10个页码时,就显示前10页
if(beginPageIndex < 1){
this.beginPageIndex = 1;
this.endPageIndex = 10;
}else if(this.endPageIndex > this.pageCount){//当后面少于5个页码时,就显示后10页
this.endPageIndex = this.pageCount;
this.beginPageIndex = this.pageCount - 10 + 1;//在显示的时候是包含两个边界的 例如总共20页数 20-10=10,显示10-20页数,因为既包含10又包含20,一共11页
}
}
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public Long getRecordCount() {
return recordCount;
}
public void setRecordCount(Long recordCount) {
this.recordCount = recordCount;
}
public List getRecordList() {
return recordList;
}
public void setRecordList(List recordList) {
this.recordList = recordList;
}
public int getBeginPageIndex() {
return beginPageIndex;
}
public void setBeginPageIndex(int beginPageIndex) {
this.beginPageIndex = beginPageIndex;
}
public int getEndPageIndex() {
return endPageIndex;
}
public void setEndPageIndex(int endPageIndex) {
this.endPageIndex = endPageIndex;
}
}
Service层:
@Override
public PageBean getPageBean(int pageNum) {
//获取pageSize信息 从配置文件读取
int pageSize = Configuration.getPageSize();
//查询数据列表
Long recordCount = dao.getCount();
//查询某一页的数据
List<Forum> recordList = dao.findAllByPageSize(pageNum, pageSize);
return new PageBean(pageNum, pageSize, recordCount, recordList);
}