如何在 spring 引导中设置 PageImpl class 的总页数
How to set TotalPages of a PageImpl class in spring boot
我正在使用 PageImpl class 将一个页面转换为一个新页面,但是 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());
案例一
查找最大页数
InformationList.getTotalPages()
案例 2 - 您的场景 - 来自 collection object 如果想要带分页的数据,那么您必须从 PageImpl class.
提供 2 个构造函数来执行此操作
PageImpl(List<T> content, Pageable pageable, long total)
其中
- content – 此页面的内容(您的 collection object)。
- pageable – 分页信息
- 总计 – 可用项目的总数。
还有一个构造函数
PageImpl(List<T> content)
注意 - 这将导致创建的页面与整个列表相同。
试试这个:-
int totalPages = InformationList.getTotalPages();
我正在使用 PageImpl class 将一个页面转换为一个新页面,但是 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());
案例一 查找最大页数
InformationList.getTotalPages()
案例 2 - 您的场景 - 来自 collection object 如果想要带分页的数据,那么您必须从 PageImpl class.
提供 2 个构造函数来执行此操作
PageImpl(List<T> content, Pageable pageable, long total)
其中
- content – 此页面的内容(您的 collection object)。
- pageable – 分页信息
- 总计 – 可用项目的总数。
还有一个构造函数
PageImpl(List<T> content)
注意 - 这将导致创建的页面与整个列表相同。
试试这个:-
int totalPages = InformationList.getTotalPages();