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
接口最常见的实现是由PageImpl
class提供的,你可以这样使用:
import org.springframework.data.domain.PageImpl;
...
Page<UserDTO> pageResult = new PageImpl<>(dtos,
userPage.getPageable(),
userPage.getTotalElements());
return pageResult;
如果需要,也可以使用页面结果的.map()
功能,可以根据方法优先选择。
我是 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
接口最常见的实现是由PageImpl
class提供的,你可以这样使用:
import org.springframework.data.domain.PageImpl;
...
Page<UserDTO> pageResult = new PageImpl<>(dtos,
userPage.getPageable(),
userPage.getTotalElements());
return pageResult;
如果需要,也可以使用页面结果的.map()
功能,可以根据方法优先选择。