如何解决如何在 Spring Boot 中设置 PageImpl 类的 TotalPages
我正在使用 PageImpl 类将页面转换为新页面,但 totalpages 属性的默认值是 0。我想将 totalPages 设置为特定数字。可以改吗?
public Page<informationDTO> getinformationById(String classId,int page,int size) {
Pageable pageable = PageRequest.of(page,size);
List<information> informationList = informationRepository.findByClassIdOrderByCreateDateDesc(classId,pageable).getContent();
List<informationDTO> informationDTOList = new ArrayList<>();
if(!informationList.isEmpty()){
for (information information: informationList){
informationDTOList.add(new informationDTO(information));
}
}
return new PageImpl<informationDTO>(informationDTOList,pageable,informationList.size());
}
解决方法
要获取页面作为答案,您需要更改代码中的一行
// Earlier
List<Information> InformationList = informationRepository.findByClassIdOrderByCreateDateDesc(classId,pageable).getContent();
// Changed line
Page<Information> InformationList = informationRepository.findByClassIdOrderByCreateDateDesc(classId,pageable);
// Then you will not be required to explicitly change into pageable
PageImpl<InformationDTO>(informationDTOList,pageable,informationList.size());
案例 1 查找最大页数
InformationList.getTotalPages()
案例 2 - 您的场景 - 来自集合对象 如果需要带分页的数据,那么您必须从 PageImpl 类中获取帮助。
提供 2 个构造函数来执行此操作
PageImpl(List<T> content,Pageable pageable,long total)
哪里
- content – 此页面的内容(您的收藏对象)。
- pageable – 分页信息
- total – 可用项目的总数。
还有另一个构造函数
PageImpl(List<T> content)
注意 - 这将导致创建的页面与整个列表相同。
,试试这个:-
int totalPages = InformationList.getTotalPages();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。