分页是一个常见而不可缺少的小技术,我们浏览各种网页时,肯定见过分页栏。
这就是一个常见的分页栏。
那么具体这个分页栏如何实现呢,我们现在先讲实现分页栏的实现类编写。
- Page类编写,这个类包含分类栏的各种信息,有当前页数、当前记录数、总页数、总记录数、是否有上一页、是否有下一页等等。
public class Page {
private int itemCount;//每一页记录数
private int totalCOunt;//总记录数
private int currentPage;//当前页码
private int tontalPage;//总页数
private int beginIndex;//获取当前页的第一个记录位置
private boolean hasPrePage;//是否还有上一页
private boolean hasNextPage;//是否还有下一页
//省略getter和sette方法
}
- 编写好Page类之后,就要编写一个PageResult类,这个类用于保存分页信息与记录信息(即为页面要呈现的东西)。
public class PageResult {
private Page page;//分页 信息
private List list;//记录信息
public Page getPage() {
return page;
}
public void setPage(Page page) {
this.page = page;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
}
3.然后就编写相应操作的工具类,用与在逻辑处理中创建分页使用。
public class PageUtil {
public static Page createPage(int itemCount, int totalCount, int currentPage) {// 创建分页信息对象
return null;
}
public static int getItemCount(int itemCount) {// 获取每一页显示记录数
return itemCount == 0 ? 10 : itemCount;
}
public static int getCurrentPage(int currentPage) {// 获取当前页
return currentPage == 0 ? 1 : currentPage;
}
public static int getTotalPage(int itemCount, int totalCount) {// 获取总页数
int totalPage = 0;
if (totalCount != 0 && totalCount % itemCount == 0) {
return totalCount / itemCount;
} else {
return totalCount / itemCount + 1;
}
}
public static int getBeginIndex(int itemCount, int currentPage) {// 获取当前页
return (currentPage - 1) * itemCount;
}
public static boolean getHasPrePage(int currentPage) {// 是否还有上一页
return currentPage == 1 ? false : true;
}
public static boolean getHasNextPage(int totalPage, int currentPage) {// 是否还有下一页
return currentPage == totalPage || totalPage == 0 ? false : true;
}
}