public class PageInfoUtil {
/**
* 获取分页结果
*
* @param pageBase
* @param totalRecord
* @param objData
* @return
*/
public static PageInfo getPageInfo(PageBase pageBase, int totalRecord, List objData) {
//设置分页返回
PageInfo pageInfo = new PageInfo(objData);
int pageSize = pageBase.getPageSize();
int size = objData.size();
int pageNum = pageBase.getPageNum();
//设置总数
pageInfo.setTotal(totalRecord);
//设置每页的显示条数
pageInfo.setPageSize(pageSize);
//设置要显示的是第几页的数据
pageInfo.setPageNum(pageNum);
pageInfo.setSize(size);
//计算获取对应的要显示的数据
int totalPages = 0;
if (totalRecord % pageSize == 0) {
totalPages = totalRecord / pageSize;
} else {
totalPages = totalRecord / pageSize + 1;
}
pageInfo.setPages(totalPages);
//初始边界值计算
long start = 0;
if (pageNum == 1) {
start = 0;
pageInfo.setHasPreviousPage(false);
pageInfo.setPrePage(0);
pageInfo.setIsFirstPage(true);
} else {
start = pageInfo.getPageSize() * (pageInfo.getPageNum() - 1);
pageInfo.setHasPreviousPage(true);
pageInfo.setPrePage(pageNum - 1);
pageInfo.setIsFirstPage(false);
}
pageInfo.setStartRow(start);
//结束边界值计算
long end = 0;
if ((start + pageInfo.getPageSize() > pageInfo.getTotal())) {
end = pageInfo.getTotal() - 1;
pageInfo.setHasNextPage(false);
pageInfo.setNextPage(pageNum);
pageInfo.setIsLastPage(true);
} else {
end = start + pageInfo.getPageSize() - 1;
pageInfo.setHasNextPage(true);
pageInfo.setNextPage(pageNum + 1);
pageInfo.setIsLastPage(false);
}
pageInfo.setEndRow(end);
pageInfo.setNavigateFirstPage(1);
pageInfo.setNavigateLastPage(pageInfo.getPages());
pageInfo.setNavigatePages(pageInfo.getPages());
return pageInfo;
}
}