非数据库数据源的分页实现
由于在做项目时,需要对非数据库数据源进行分页展示。于是通过网上查找以及综合mybais的分页插件,编写了一个分页工具类。
1、工具类MyPager.java
import java.util.ArrayList;
import java.util.List;
public class MyPager<T> {
// 需要传入分页的数据集合
private List<T> dataList;
// 当前页号
private int currentPages;
// 每页条数
private int size;
// 分页后的返回集合
private List<T> resultsList;
// 页数
private int pages;
// 记录条数
private int recordCount;
// 上一页序号
private int prePageIndex;
// 下一页序号
private int nextPageIndex;
// 是否第一页
private boolean firstPage;
// 是否最后一页
private boolean lastPage;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//所有导航页号
private int[] navigatepageNums;
public int getCurrentPages() {
return currentPages;
}
public void setCurrentPages(int currentPages) {
this.currentPages = currentPages;
}
public List<T> getDataList() {
return dataList;
}
public void setDataList(List<T> dataList) {
this.dataList = dataList;
// 计算条数
recordCount = dataList.size();
// 计算页数
/*if (recordCount % size == 0) {
pages = recordCount / size;
} else {
pages = recordCount / size + 1;
}*/
pages=(int)Math.ceil(Double.valueOf(recordCount)/Double.valueOf(size));
//是否有下一页
if (currentPages>1){
hasPreviousPage=true;
}else {
hasPreviousPage=false;
}
if (currentPages<pages){
hasNextPage=true;
}else {
hasNextPage=false;
}
navigatepageNums = new int[pages];
for (int i = 0; i < pages; i++) {
navigatepageNums[