package cn.gzsxt.util; import java.util.List; //封装了一个页面的全部信息 public class PageUtil { private int currPage; // 当前页 private int pageSize; // 每页多少条数据 private int navCount; // 导航条中的总数字 private int rowCount; // 总数据量 private int nextPage; // 下一页 private int prevPage; // 上一页 private int pageCount; // 总页数 private int firstPage; // 首页 private int lastPage; // 尾页 private int startNav; // 起始导航数字 private int endNav; // 结束导航数字 private List pageData; // 一页的数据内容 public int getCurrPage() { return currPage; } public void setCurrPage(int currPage) { this.currPage = currPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getNavCount() { return navCount; } public void setNavCount(int navCount) { this.navCount = navCount; } public int getRowCount() { return rowCount; } public void setRowCount(int rowCount) { this.rowCount = rowCount; } public int getNextPage() { return nextPage; } public void setNextPage(int nextPage) { this.nextPage = nextPage; } public int getPrevPage() { return prevPage; } public void setPrevPage(int prevPage) { this.prevPage = prevPage; } public int getPageCount() { return pageCount; } public void setPageCount(int pageCount) { this.pageCount = pageCount; } public int getFirstPage() { return firstPage; } public void setFirstPage(int firstPage) { this.firstPage = firstPage; } public int getLastPage() { return lastPage; } public void setLastPage(int lastPage) { this.lastPage = lastPage; } public int getStartNav() { return startNav; } public void setStartNav(int startNav) { this.startNav = startNav; } public int getEndNav() { return endNav; } public void setEndNav(int endNav) { this.endNav = endNav; } public List getPageData() { return pageData; } public void setPageData(List pageData) { this.pageData = pageData; } public PageUtil() { } public PageUtil(int currPage, int pageSize, int navCount, int rowCount) { this.currPage = currPage; this.pageSize = pageSize; this.navCount = navCount; this.rowCount = rowCount; this.pageCount = (int) Math.ceil(this.rowCount / (this.pageSize * 1.0)); this.firstPage = 1; this.lastPage = this.pageCount; // 避免传过来的currPage不在首页和尾页之间 this.currPage = this.currPage < this.firstPage ? this.firstPage : this.currPage; this.currPage = this.currPage > this.lastPage ? this.firstPage : this.currPage; this.prevPage = this.currPage - 1 <= 0 ? this.firstPage : this.currPage - 1; this.nextPage = this.currPage + 1 >= this.lastPage ? this.lastPage : this.currPage + 1; // 计算起始导航数字和结束导航数字: 始终保证this.endNav - this.startNav = this.navCount - 1; this.startNav = (this.currPage - this.navCount / 2) < this.firstPage ? this.firstPage : (this.currPage - this.navCount / 2); this.endNav = (this.startNav + this.navCount - 1) > this.lastPage ? this.lastPage : (this.startNav + this.navCount - 1); if (this.pageCount > this.navCount) { this.startNav = this.endNav - this.startNav < this.navCount - 1 ? this.endNav - this.navCount + 1 : this.startNav; } } public static void main(String[] args) { PageUtil pu = new PageUtil(1, 10, 10, 89); System.out.println("总页数:" + pu.getPageCount()); System.out.println("上一页:" + pu.getPrevPage()); System.out.println("下一页:" + pu.getNextPage()); System.out.println("起始导航数字:" + pu.getStartNav()); System.out.println("结束导航数字:" + pu.getEndNav()); } }