PageUtil 分页工具类
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);
}
}