[table]
|| [list]
[*]经常在项目中遇到分页的问题,现在总结一下基于JavaBean的分页处理方式。最常用的是查询分页,但还有些需要对查询结果进行做验证后再分页的,也就是对 List 进行分页。
[/list]
[/table]
[list]
[*]构建一个Page的JavaBean,如下:[/list]
[b][color=darkred]<1> 查询分页,在DAO方法中设置[/color][/b]
到此查询分页就可以了。
[b][color=darkred]<2> 对List分页,也一样在DAO中设置,利用subList(int startIndex,int endIndex)方法,注意可能需要抛出找不到索引的异常IndexOutOfBoundsException[/color][/b]
[b][color=darkred]<3>前端分页处理待续中......[/color][/b]
|| [list]
[*]经常在项目中遇到分页的问题,现在总结一下基于JavaBean的分页处理方式。最常用的是查询分页,但还有些需要对查询结果进行做验证后再分页的,也就是对 List 进行分页。
[/list]
[/table]
[list]
[*]构建一个Page的JavaBean,如下:[/list]
public class Page implements Serializable{
private static final long serialVersionUID = 1L;
private int currentPage = 1;
private int pageSize = 10;
private long totalSize = 0;
private int totalPage = 1;
private boolean hasFirst;
private boolean hasPrevious;
private boolean hasNext;
private boolean hasLast;
//Getter/Setter方法 略
[b][color=darkred]<1> 查询分页,在DAO方法中设置[/color][/b]
//设置总记录数
page.setTotalSize(query.list().size());
//设置显示输出第一条记录的位置
query.setFirstResult((page.getCurrentPage() - 1)*page.getPageSize());
//设置显示输出最后一条记录的位置
query.setMaxResults(page.getPageSize());
//最后
return query.list();
到此查询分页就可以了。
[b][color=darkred]<2> 对List分页,也一样在DAO中设置,利用subList(int startIndex,int endIndex)方法,注意可能需要抛出找不到索引的异常IndexOutOfBoundsException[/color][/b]
//设置总记录数
page.setTotalSize(list.size());
//设置对List的开始后结束索引
list.subList((page.getCurrentPage() - 1) * page.getPageSize(),
page.getPageSize());
//最后
return list;
[b][color=darkred]<3>前端分页处理待续中......[/color][/b]