項目中有時候遇到list多種來源,不能使用PageInfo在查詢資料庫時分頁,需要查詢全部之後,手動分頁。
//手動分頁的分割起始下标
Integer fromIndex = 0;
//手動分頁的分割結尾下标
Integer toIndex = 0;
Integer total = arrayList.size();
if(total/pageSize == 0 && total%pageSize > 0){
fromIndex = 0;
toIndex = total;
}else{
if(total/pageSize >= 1 && total % pageSize >= 0){
fromIndex = pageSize * (pageNum-1);
if(pageSize * pageNum >= total){
toIndex = total;
}else{
toIndex = pageSize * pageNum;
}
}
}
//開啟分頁
PageHelper.startPage(pageNum, pageSize);
List<ModelStorageByUserAndType> list = arrayList.subList(fromIndex, toIndex);
PageInfo<ModelStorageByUserAndType> pageInfo = new PageInfo<>(list);
pageInfo.setTotal(total);
//非常重要,作用是手動清理ThreadLocal存儲的分頁參,防止分頁失效,參數亂套的情況
PageHelper.clearPage();