Loading...
墨滴

呵呵哒

2021/07/05  阅读:47  主题:蓝莹

分页工具类

项目中用到的工具类

逻辑分页方法

public class ListFormUtils {

    /**
     * 分页方法
     *
     * @param list        源数据
     * @param currentPage 当前页
     * @param maxNum      每页显示几条
     * @param pageNum     总条数
     * @return
     */
    public static List getPageList(List list, int currentPage, int maxNum, int pageNum) {
        int totalCount = list.size();
        int pageCount;
        int m = totalCount % maxNum;

        if (m > 0) {
            pageCount = totalCount / maxNum + 1;
        } else {
            pageCount = totalCount / maxNum;
        }
        int fromIndex = 0; // 从哪里开始截取
        int toIndex = 0; // 截取几个
        if (list == null || list.size() == 0)
            return null;
        // 当前页小于或等于总页数时执行
        if (currentPage <= pageCount && currentPage != 0) {
            fromIndex = (currentPage - 1) * maxNum;

            if (currentPage == pageCount) {
                toIndex = list.size();

            } else {
                toIndex = currentPage * maxNum;
            }

        }
        return list.subList(fromIndex, toIndex);
    }
}

使用案例

 List pageList = ListFormUtils.getPageList(shiftWorkDOS, basePageRequest.getPageNum(), basePageRequest.getPageSize(),
                collect.size());
        PageResult result = new PageResult();
        result.setPageNum(basePageRequest.getPageNum());
        result.setPageSize(basePageRequest.getPageSize());
        result.setTotalSize(collect.size());
        result.setTotalPages((collect.size() + basePageRequest.getPageSize() - 1) / (basePageRequest.getPageSize()));
        result.setContent(pageList);

PageResult 实体类

public class PageResult {
 /**
  * 当前页码
  */
 private int pageNum;
 /**
  * 每页数量
  */
 private int pageSize;
 /**
  * 记录总数
  */
 private long totalSize;
 /**
  * 页码总数
  */
 private int totalPages;
 /**
  * 分页数据
  */
 private List<?> content;
 public int getPageNum() {
  return pageNum;
 }
 public void setPageNum(int pageNum) {
  this.pageNum = pageNum;
 }
 public int getPageSize() {
  return pageSize;
 }
 public void setPageSize(int pageSize) {
  this.pageSize = pageSize;
 }
 public long getTotalSize() {
  return totalSize;
 }
 public void setTotalSize(long totalSize) {
  this.totalSize = totalSize;
 }
 public int getTotalPages() {
  return totalPages;
 }
 public void setTotalPages(int totalPages) {
  this.totalPages = totalPages;
 }
 public List<?> getContent() {
  return content;
 }
 public void setContent(List<?> content) {
  this.content = content;
 }
}

呵呵哒

2021/07/05  阅读:47  主题:蓝莹

作者介绍

呵呵哒