工具:自己写的分页工具类

it2024-11-11  6

实现分页功能的方式很多,其中较为便捷的就是分页插件,这里是我自己封装的分页工具类,便于以后拿来直接用。逻辑简单、易于理解、封装轻巧、便于使用,当然追求强大功能的项目还是去引分页插件的依赖吧。


代码:

import java.util.List; /** * 分页辅助类 * 分页参数计算半自动化 辅助传递参数 * 必须先初始化查询 表 的 数据总数 totalItems * @param <T> 查询的参数类型 */ public class PageInfo<T> { private int lastPage; //上一页 private int currentPage; //当前页 private int nextPage; //下一页 private int totalItems; //总条目数 private int totalPage; //总页码、尾页 private int pageSize = 5; //单页显示大小 默认大小: 5 条 private List<T> data; //查询到的数据 /** * 创建对象时,必须初始化总条目数,也就是说必须先查对应的表的总条目数! * @param totalItems */ public PageInfo(int totalItems) { this.totalItems = totalItems; this.totalPage = totalItems % pageSize == 0 ? (totalItems / pageSize) : ((totalItems / pageSize) + 1); } /** * 设置尾页大小,在构造函数中自动设置 * @param totalPage */ public void setTotalPage(int totalPage) { this.totalPage = totalPage; } /** * 必须先设置尾页大小 * 设置当前需要查询的页码时,要判断接受参数的合法性 * @param currentPage */ public void setCurrentPage(int currentPage) { //如果当前页的值在 1 和 尾页(totalPage) 之间,为合法数据保存 if (currentPage >= 1 && currentPage <= totalPage) { //页码正常 System.out.println("页码正常"); this.currentPage = currentPage; } else if (currentPage < 1) { //如果当前页小于 1 则显示首页 System.out.println("页码小于1 , 使用默认页码 1"); this.currentPage = 1; } else if (currentPage > totalPage) { //如果当前页大于 尾页 则显示尾页 System.out.println("页码大于尾页 , 使用尾页 "+totalPage); this.currentPage = totalPage; } this.lastPage = this.currentPage - 1; this.nextPage = this.currentPage + 1; } /** * 修改页面大小(显示条目数),级联修改页码总数(尾页) * 重新设值 current Page 的合理值 * @param pageSize */ public void setPageSize(int pageSize) { this.pageSize = pageSize; this.totalPage = totalItems % pageSize == 0 ? (totalItems / pageSize) : ((totalItems / pageSize) + 1); setCurrentPage(this.currentPage); } public void setData(List<T> data) { this.data = data; } public int getLastPage() { return lastPage; } public int getCurrentPage() { return currentPage; } public int getNextPage() { return nextPage; } public int getTotalItems() { return totalItems; } public int getTotalPage() { return totalPage; } public int getPageSize() { return pageSize; } public List<T> getData() { return data; } }
最新回复(0)