解决PageHelper分页不正常,pages始终等于1,total 始终等于pageSize的问题
2024-09-18 22:58:19
问题
pages
始终等于1,total
始终等于pageSize
原因
原因是我在查询到list数据之后,对list做了操作,导致分页不正常
// 这是service层的类
public PageInfo<TUiWork> getAllByPagination(Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<TUiWork> workList = workMapper.getAll(); // 问题就在这里,我对workList做了操作
List<TUiWork> newWorkList = new ArrayList<>();
for (TUiWork work : workList) {
List<String> imageUrlList = getImageUrlListByIds(work.getImageId());
work.setImageUrls(imageUrlList);
newWorkList.add(work);
} // 把新的list传递给了PageInfo,导致分页不正常
PageInfo<TUiWork> tUiWorkPageInfo = new PageInfo<>(newWorkList);
return tUiWorkPageInfo;
}
解决
第一种:
重新自定义PageInfo类,能解决问题,但是比较繁琐,不探究。
第二种:(推荐)
直接用PageHelper的类来实现,代码如下:
//创建Page类
Page page = new Page(pageNum, pageSize);
//为Page类中的total属性赋值
int total = list.size();
page.setTotal(total);
//计算当前需要显示的数据下标起始值
int startIndex = (pageNum - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize,total);
//从链表中截取需要显示的子链表,并加入到Page
page.addAll(list.subList(startIndex,endIndex));
//以Page创建PageInfo
PageInfo pageInfo = new PageInfo<>(page);
return pageInfo;
最新文章
- Git撤销提交和修改相关操作
- Uva 11090 在环中
- 盘点国内网站常用的一些 CDN 公共库加速服务
- php的urlencode()URL编码函数浅析
- C#线程系列讲座(5):同步技术之Monitor
- Java:IO流与IO设备
- 各种matrix
- c# 文件/文件夹操作
- redis做RDB时请求超时case
- 代码配置没有问题,为什么不回滚事务(要理解Mysql数据库引擎)
- 如何清除jboss缓存
- centos7修改网卡名称
- python字典学习笔记
- SpringCloud用户自定义配置信息的定义和查看
- 【刷题】若串 =’software’ ,其子串数目为:37
- poj 1015 Jury Compromise(背包变形dp)
- JAVA中的栈和堆【转】
- KVO的使用二:常用方法及小技巧
- mvc route .html 后缀 404
- 常见图片格式PNG,JPEG,BMP,GIF区别总结