PageInfo手动分页实现方式
作者:互联网
1 /** 2 * 使用PageInfo做分页时手动设置参数的工具类 3 * pageNum 页码 4 * pageSize 每页包含的数据量 5 * PageInfo 对象 6 */ 7 8 public class PageInfoUtils { 9 public static PageInfo PageInfoUtils(Integer pageNum, Integer pageSize, PageInfo pageInfo){ 10 int start = 0; 11 int end = 0; 12 // 总页数 13 int totalPages = 0; 14 int totalRecord = (int) pageInfo.getTotal(); 15 pageInfo.setPageNum(pageNum); 16 pageInfo.setPageSize(pageSize); 17 pageInfo.setSize(totalRecord); 18 if(totalRecord%pageSize==0){ 19 totalPages = totalRecord / pageSize; 20 }else { 21 totalPages = totalRecord / pageSize + 1; 22 } 23 //初始边界值计算 24 if (pageNum == 1){ 25 start = 0; 26 // 设置没有前一页 27 pageInfo.setHasPreviousPage(false); 28 // 设置前一页的值为0 29 pageInfo.setPrePage(0); 30 // 设置是否为第一页 31 pageInfo.setIsFirstPage(true); 32 }else { 33 // 如果不是第一页, 需要计算最开始页的值:每页数量 * (当前的页数 - 1) 34 start = pageInfo.getPageSize()*(pageInfo.getPageNum()-1); 35 // 设置前一页的值为true 36 pageInfo.setHasPreviousPage(true); 37 // 设置前一页的值 38 pageInfo.setPrePage(pageNum-1); 39 // 设置是否为第一页的值为false 40 pageInfo.setIsFirstPage(false); 41 } 42 // 设置成上一页的最后一个值 43 pageInfo.setStartRow((pageNum-1)*pageSize); 44 //结束边界值计算 45 // 判断 当前页的第一个值 + 每页的数量值 是否大于总数 46 if ((start+pageInfo.getPageSize() > pageInfo.getTotal())){ 47 // 把总数赋值给end 48 end = totalRecord; 49 // 设置是否有下一页的值为false 50 pageInfo.setHasNextPage(false); 51 // 设置为最后一页 52 pageInfo.setIsLastPage(true); 53 // 设置最后一页的元素在下标 54 pageInfo.setEndRow(totalRecord); 55 }else { 56 // 上一页的最后值 + 当前页的页面数 57 end = start + pageInfo.getPageSize(); 58 // 设置是否有下一页 59 pageInfo.setHasNextPage(true); 60 // 设置下一页的页数 61 pageInfo.setNextPage(pageNum + 1); 62 // 设置不是最后一页 63 pageInfo.setIsLastPage(false); 64 // 设置最后一页的元素下标:当前页 * 页面数量 65 pageInfo.setEndRow(pageNum * pageSize); 66 } 67 // 设置页面上要显示的数据 68 if (start < end && end <= totalRecord){ 69 pageInfo.setList(pageInfo.getList().subList(start,end)); 70 } 71 // 判断总数是否为0 72 if(pageInfo.getSize() == 0) { 73 // 都设置为0 74 pageInfo.setStartRow(0); 75 pageInfo.setEndRow(0); 76 } else { 77 // 当页的第一个值为:上页数的最后值+1 78 pageInfo.setStartRow(pageInfo.getStartRow() + 1); 79 // 当页的最后值为:减一加页面总数 80 pageInfo.setEndRow(pageInfo.getStartRow()-1+pageInfo.getSize()); 81 } 82 // 设置总页数 83 pageInfo.setPages(totalPages); 84 // 设置导航条上的最后一页 85 pageInfo.setNavigateLastPage(totalPages>pageNum?pageNum+1:totalPages); 86 return pageInfo; 87 } 88 }
标签:pageNum,分页,pageSize,手动,totalRecord,PageInfo,设置,一页,pageInfo 来源: https://www.cnblogs.com/wuxixin/p/16365094.html