pageSize, pageNo 옵션 쿼리스트링
디폴트 값 적용하여 없어도 에러가 발생하지 않게
1. PageController
pageNo = 0 , pageSize = 10 디폴트
@GetMapping
public List<PostDto> getAllPosts(
@RequestParam(value = "pageNo", defaultValue = "0", required = false) int pageNo ,
@RequestParam(value = "pageSize", defaultValue = "10", required = false) int pageSize
){
return postService.getAllPosts(pageNo, pageSize);
}
2. PostService
//모든 포스트들을 가져오기 (페이지네이션)
List<PostDto> getAllPosts(int pageNo, int pageSize);
3. PostServiceImple
@Override
public List<PostDto> getAllPosts(int pageNo, int pageSize) {
//Pageable 객체 생성
Pageable pageable = PageRequest.of(pageNo, pageSize);
//pageable 을 입력해 원하는 페이지의 사이즈만큼 리스트 리턴
Page<Post> posts = postRepository.findAll(pageable);
//페이지객체 안의 리스트만 가져오기
List<Post> pagePosts = posts.getContent();
//DTO로 변환하여 리턴
return pagePosts.stream().map(post -> mapToDto(post)).collect(Collectors.toList());
}