分页封装VO àì夳堔傛蜴生んèń 2021-06-24 14:36 536阅读 0赞 /** * */ /** * @ClassName: PageInfo * @Description: TODO(这里用一句话描述这个类的作用) * @author zhoushun * @date 2012-3-11 下午12:45:13 * */ /** * 该类描述了分页记录集中的关于页的信息 */ public class PageInfo { /** * 总共记录数 */ private int totalRow; // /** * 总共页数 */ private int totalPage; // /** * 当前页,默认为1 */ private int currentPage = 1; // /** * 页的大小(默认显示10条) */ private int pageSize = 10; // /** * 当前页的第一条记录的编号 */ private int startRow=2; private boolean hasPrevious; private boolean hasNext; private boolean bof; private boolean eof; /** 构造方法 @param totalRow 总记录数 @param pageSize 页的大小 @param page 页码 */ public PageInfo(int totalRow, int pageSize, int page) { this.totalRow = totalRow; this.pageSize = pageSize; // 根据页大小和总记录数计算出总页数 this.totalPage = countTotalPage(this.pageSize, this.totalRow); setCurrentPage(page); //获取当前页的第一条记录的编号 this.startRow=getStartRow(this.pageSize, this.currentPage); //System.out.println("startRow:"+startRow); // 修正当前页 init(); } /** * 获取当前页的第一条记录的编号 * @param pageSize(页的大小) * @param page(页码) * @return */ public int getStartRow(int pageSize, int page){ return pageSize*(page-1)+1; } public int getTotalRow() { return totalRow; } public int getStartRow() { return startRow; } public void setStartRow(int startRow) { this.startRow = startRow; } public void setTotalRow(int totalRow) { this.totalRow = totalRow; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public void setHasPrevious(boolean hasPrevious) { this.hasPrevious = hasPrevious; } public void setHasNext(boolean hasNext) { this.hasNext = hasNext; } public void setBof(boolean bof) { this.bof = bof; } public void setEof(boolean eof) { this.eof = eof; } public int getTotalPage() { return totalPage; } public int getCurrentPage() { return this.currentPage; } // 修正计算当前页 public void setCurrentPage(int currentPage) { if(currentPage>this.totalPage){ this.currentPage=this.totalPage; }else if (currentPage<1){ this.currentPage=1; } else{ this.currentPage=currentPage; } } // 获取分页大小 public int getPageSize() { return pageSize; } // 设置分页大小 public void setPageSize(int pageSize) { this.pageSize = pageSize; } // 获取当前页记录的开始索引 public int getBeginIndex() { int beginIndex = (currentPage - 1) * pageSize; // 索引下标从0开始 if(beginIndex < 0){ return 0; } return beginIndex; } /** * 计算总页数 * @param pageSize * @param totalRow * @return */ public int countTotalPage(int pageSize, int totalRow) { int totalPage = totalRow%pageSize == 0 ? (totalRow/pageSize):(totalRow/pageSize)+1; return totalPage; } /** * 返回下一页的页码 * @return */ public int getNextPage() { if (currentPage + 1 >= this.totalPage) { // 如果当前页已经是最后页 则返回最大页 return this.totalPage; } return currentPage + 1; } // 返回前一页的页码 public int getPreviousPage() { if (currentPage - 1 <= 1) { return 1; } else { return currentPage - 1; } } public boolean isHasPrevious() { return hasPrevious; } public boolean isHasNext() { return hasNext; } public boolean isBof() { return bof; } public boolean isEof() { return eof; } public boolean hasNext() { return currentPage < this.totalPage; } public boolean hasPrevious() { return currentPage > 1; } public boolean isFirst() { return currentPage == 1; } public boolean isLast() { return currentPage >= this.totalPage; } // 初始化信息 private void init() { this.hasNext = hasNext(); this.hasPrevious = hasPrevious(); this.bof = isFirst(); this.eof = isLast(); } } //使用: PageInfo pageInfo = new PageInfo(count, max, page); 总数、每页最大页数、当前第几页
还没有评论,来说两句吧...