返回
十五分钟彻底掌握分页逻辑
前端
2024-02-17 17:21:03
十五分钟--分页逻辑--包学包会!
分页组件是由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对象返回。
掌握了分页逻辑后,就可以在项目中轻松实现分页功能了。
希望本文对您有所帮助!