下面是使用java 后端的for循环实现的简单的分页,方法仅供参考,具体逻辑需要实际应用去做调整和修改,亲测改方式可行,需要根据具体的逻辑调整后实现。
代码只是核心的参考实例
pageParam是前段传的对应的分页信息,包含页数,每页显示条数等信息,在方法里面获取数据后按照前段参数进行循环截取后再return到前台。优点是实现简单,代码比较少,不需要借助其他包和工具,缺点是需要每次都要将数据循环一次,将指定页数和显示数据条数截取返回。
/**
* 使用for循环实现后端分页
* @param list 数据集合
* @param page 当前页数
* @param num 每页条数
* @return
*/
public Page<info> test(Map<String, Integer> pageParam){
//sql查询返回的数据
List<Object[]> result=pPolicyinsureRepository.test();
// obj转对象
List<info> list = objToDo(result);
// 若分页参数不为空,则绑定分页参数
//当前页码
int pageNum = pageParam.get(PAGE_NUM);
//查询的条数
int pageSize = pageParam.get(PAGESIZE);
// 总条数
int len =list.size();
// 总页数
int count = len%pageSize==0?(len/pageSize):(len/pageSize)+1;
for(int i=0;i <= count;i++){
int fromIndex = i*pageSize;
int toIndex=Math.min(len, (i+1)*pageSize);
if(pageNum == i+1 ){
List<info> subList=list.subList(fromIndex, toIndex);
Pageable pageable = new PageRequest(pageNum, pageSize);
Page<info> pdrPage = new PageImpl<>(subList, pageable, len);
return pdrPage;
}
if(toIndex >= len){
break;
}
}
return null;
}