返回

十五分钟彻底掌握分页逻辑

前端

十五分钟--分页逻辑--包学包会!

分页组件是由2+2+2+1+2*2=11个元素构成的,这个数字可以用一个变量baseCount来表示。

分析到这,逻辑已经完成了74%,接下来让我们继续分析一下分页组件需要哪些参数:

  • 当前页码currentPage :表示当前所处的页码,默认为1。
  • 每页显示条数pageSize :表示每页显示的数据条数,默认为10。
  • 总条数total :表示总的数据条数。
  • 总页数totalPage :表示总的页数,可以通过公式totalPage=Math.ceil(total/pageSize)计算得到。
  • 是否有上一页hasPrevious :表示是否有上一页,默认为false。
  • 是否有下一页hasNext :表示是否有下一页,默认为false。
  • 分页查询起始位置start :表示分页查询的起始位置,可以通过公式start=(currentPage-1)*pageSize计算得到。
  • 分页查询结束位置end :表示分页查询的结束位置,可以通过公式end=currentPage*pageSize计算得到。

了解了分页组件的构成元素和参数后,就可以开始编写分页逻辑了。

这里提供一个简单的分页逻辑示例:

public PageInfo<T> getPageList(int currentPage, int pageSize) {
    // 计算总页数
    int totalPage = (int) Math.ceil((double) total / pageSize);

    // 计算分页查询起始位置
    int start = (currentPage - 1) * pageSize;

    // 计算分页查询结束位置
    int end = currentPage * pageSize;

    // 查询分页数据
    List<T> list = dao.getPageList(start, end);

    // 组装分页信息
    PageInfo<T> pageInfo = new PageInfo<>();
    pageInfo.setCurrentPage(currentPage);
    pageInfo.setPageSize(pageSize);
    pageInfo.setTotal(total);
    pageInfo.setTotalPage(totalPage);
    pageInfo.setHasPrevious(currentPage > 1);
    pageInfo.setHasNext(currentPage < totalPage);
    pageInfo.setList(list);

    return pageInfo;
}

这个示例中,我们通过计算总页数、分页查询起始位置和结束位置来查询分页数据,然后将分页信息组装成PageInfo对象返回。

掌握了分页逻辑后,就可以在项目中轻松实现分页功能了。

希望本文对您有所帮助!