스프링 부트/[스프링 부트] 게시판 무작정 따라하기

[스프링 부트] 게시판 무작정 따라하기 - 8. 페이징 처리 1편

sungw00 2023. 3. 13. 12:52
728x90

페이징: 수많은 게시글의 갯수를 나눠서 보여주는 것

티스토리에도 있다.

 

컨트롤러의 boardList 메서드를 수정

@GetMapping("/board/list")
    public String boardList(Model model, @PageableDefault(page = 0, size = 10, sort = "id", direction = Sort.Direction.DESC) Pageable pageable) {
        model.addAttribute("list", boardService.boardList(pageable));
        return "boardlist";
    }

Pageable 클래스는 org.springframework.data.domain 패키지에 있는 인터페이스를 임포트해야 한다.

@PageableDefault 애노테이션을 사용해서 page는 default 페이지, size는 한 페이지 게시글 수, sort는 정렬 기준 컬럼, direction은 정렬 순서를 설정하였다.

 

서비스의 boardList 메서드를 수정

// 게시글 리스트 처리
    public Page<Board> boardList(Pageable pageable) {
        return boardRepository.findAll(pageable);
    }

Pageable을 매개변수로 추가하고, findAll 메서드 내에 pageable을 추가할 때 오류가 발생하는데, 

여기서 기존에 리턴값으로 모든 것을 반환하는 경우에는 List로 값을 반환했지만 Pageable 인터페이스를 반환해야 하기 때문에 Page로 값을 반환하게끔 설정하면 오류가 발생하지 않는다.

 

주소창에 GET 메서드로 page와 size를 조절하여 요청할 수 있다.

page는 게시글의 id, size는 보여줄 게시글의 갯수를 의미

728x90