1、自组装Page
public class Page<T> {
private int pageNo = 1; // 当前页码
private int pageSize = Integer.valueOf(Global.getConfig("page.pageSize")); // 页面大小,设置为“-1”表示不进行分页(分页无效)
private long count;// 总记录数,设置为“-1”表示不查询总数
private int first;// 首页索引
private int last;// 尾页索引
private int prev;// 上一页索引
private int next;// 下一页索引
private boolean firstPage;//是否是第一页
private boolean lastPage;//是否是最后一页
private int length = 8;// 显示页面长度
private int slider = 1;// 前后显示页面长度
private List<T> list = new ArrayList<T>();
private String orderBy = ""; // 标准查询有效, 实例: updatedate desc, name asc
private String funcName = "page"; // 设置点击页码调用的js函数名称,默认为page,在一页有多个分页对象时使用。
private String message = ""; // 设置提示消息,显示在“共n条”之后
//省略...
}
Page包含分页的所有信息(当前页、每页显示条数、总记录数、总分页数、数据<T>、funcName)以及其他的附属信息。
2、组装Pager-taglib
基本需要Pager“(or PagerModel)、SystemContext、SystemContextFilter、pager.jsp等共同组装完成分页功能。
pager:负责数据和分页的信息承载。包括数据<T>、起始页、分页记录数、总记录数。
SystemContext:负责组装分页的局部变量。包括起始页、每页记录数、排序、realpath等。
SystemContextFilter:负责接收前端传递的分页参数(request),封装到SystemContext。
pager.jsp:前端展示的分页样式。需要<%@taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>标签
3、SpringData封装的分页类
org.springframework.data.domain.Page;
org.springframework.data.domain.PageImpl;
org.springframework.data.domain.Pageable
每一种都有一套与DAO整合的代码。稍后整理