spring 引导中的分页

pagination in spring boot

我是 Java 和 Spring 引导的初学者,我在 Spring 引导上使用 Pagination,使用此代码我 return 用户列表,如果我还想 return 页数,我必须这样做吗?

我知道 getTotalPages() 我可以获得页数,但是如何 return 呢?

@Service
public class UserService{

    @Autowired
    UserRepository userRepository;

    public List<UserDto> findAll(PageRequest pageRequest){
        Page<User> userPage = userRepository.findAll(pageRequest);
        List<UserDTO> dtos = new ArrayList<UserDTO>();
        //return userPage.getContent();

        for (User u : userPage.toList() ) {
            dtos.add(new UserDTO(u));
        }
        return dtos;
    }
}

Page接口最常见的实现是由PageImplclass提供的,你可以这样使用:

import org.springframework.data.domain.PageImpl;

...
Page<UserDTO> pageResult = new PageImpl<>(dtos, 
        userPage.getPageable(), 
        userPage.getTotalElements());
return pageResult;

如果需要,也可以使用页面结果的.map()功能,可以根据方法优先选择。