基于SSH框架的分页

分页信息类用来封装分页的所有信息,如每页显示多少记录,总记录数、总页数、当前页、是否有上一页等信息。
public class Page {

private int everyPage;//每页显示记录数

private int totalCount;//总记录数

private int totalPage;//总页数

private int currentPage;//当前页

private int beginIndex;//查询起始点


private boolean hasPrePage;//是否有上一页

private boolean hasNextPage;//是否有下一页

public Page(int everyPage, int totalCount, int totalPage, 

int currentPage,int beginIndex, boolean hasPrePage,

boolean hasNextPage) {//自定义构造方法

this.everyPage = everyPage;

this.totalCount = totalCount;

this.totalPage = totalPage;

this.currentPage = currentPage;

this.beginIndex = beginIndex;

this.hasPrePage = hasPrePage;

this.hasNextPage = hasNextPage;

}
//省略get和set方法

在进行分页的时候,必须知道3个信息,分别是当前页、每页显示记录数以及总记录数。只要知道了这3个信息,就可以通过计算得到分页的其他信息。这部分操作就交给分页辅助类来完成了。
public class PageUtil {

public static Page createPage(int everyPage,int totalCount,int currentPage) {//创建分页信息对象

everyPage = getEveryPage(everyPage);

currentPage = getCurrentPage(currentPage);

int totalPage = getTotalPage(everyPage, totalCount);

int beginIndex = getBeginIndex(everyPage, currentPage);

boolean hasPrePage = getHasPrePage(currentPage);

boolean hasNextPage = getHasNextPage(totalPage, currentPage);

return new Page(everyPage, totalCount, totalPage, currentPage,

beginIndex, hasPrePage,  hasNextPage);

}

public static int getEveryPage(int everyPage) {//获得每页显示记录数

return everyPage == 0 ? 10 : everyPage;

}

public static int getCurrentPage(int currentPage) {//获得当前页

return currentPage == 0 ? 1 : currentPage;

}

public static int getTotalPage(int everyPage,int totalCount) {//获得总页数

int totalPage = 0;

if(totalCount != 0 &&totalCount % everyPage == 0) {

totalPage = totalCount / everyPage;

} else {

totalPage = totalCount / everyPage + 1;

}

return totalPage;

}

public static int getBeginIndex(int everyPage,int currentPage) {//获得起始位置

return (currentPage - 1) * everyPage;

}

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;

}

}
DaoImpl中根据每页显示记录数,取得该页显示的记录,存入list中
int start =page.getBeginIndex();

int end =page.getBeginIndex()+page.getEveryPage();

if(end>list.size())

end=list.size();

List payinlist = list.subList(start, end);

return payinlist;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值