PageUtil 分页工具类

时间:2025-03-10 10:26:52
public class PageUtil { public static void listToPageInfo(List<?> list, Integer pageSize, Integer pageNum, PageInfo pageInfo) { //每页最大显示条数 pageInfo.setPageSize(pageSize); //当前页 pageInfo.setPageNum(pageNum); if (!CollectionUtils.isEmpty(list)) { int total =list.size(); //总条数 pageInfo.setTotal(total); int pages = (int) Math.ceil((double) total/pageSize); //总页数 pageInfo.setPages(pages); if (pageNum > pages) { pageNum = pages; pageInfo.setPageNum(pageNum); } int fromIndex = (pageNum - 1) * pageSize; int toIndex = pageNum * pageSize; if (toIndex > total) { toIndex = total; } //结果集 pageInfo.setList(list.subList(fromIndex,toIndex)); //当前页的条数 pageInfo.setSize(toIndex - fromIndex); //是否是第一页 pageInfo.setIsFirstPage(pageNum == 1); //是否是最后一页 pageInfo.setIsLastPage(pageNum == pages); //是否有上一页 pageInfo.setHasPreviousPage(pageNum >= 2 && pageNum <= pages); //是否有下一页 pageInfo.setHasNextPage(pageNum <= pages - 1); //上一页页码 pageInfo.setPrePage(pageNum == 1 ? 1 : pageNum - 1); //下一页页码 pageInfo.setNextPage(pageNum >= pages ? pageNum : pageNum +1); } else { pageInfo.setList(new ArrayList()); } } //测试 public static void main(String[] args) { List<BlogCategoryPO> blogCategoryPOS = new ArrayList<>(); // (new BlogCategoryPO(1, 1, 1, new Date(), new Date())); // (new BlogCategoryPO(2, 2, 2, new Date(), new Date())); // (new BlogCategoryPO(3, 3, 3, new Date(), new Date())); // (new BlogCategoryPO(4, 4, 4, new Date(), new Date())); // (new BlogCategoryPO(5, 5, 5, new Date(), new Date())); PageInfo<BlogCategoryPO> pageInfo = new PageInfo<>(); PageUtil.listToPageInfo(blogCategoryPOS,4,11,pageInfo); System.out.println(pageInfo); } }