1. 程式人生 > 其它 >分頁結果工具類

分頁結果工具類

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;
}
}