Spring boot kim's cafe/게시판만들기

Springboot 게시판 만들기!(2) 페이징 with PageRequest.of

디비드킴 2021. 6. 17. 13:37

자 이제 페이징을 할 텐데

두 가지 방법이 있다

1. jpa가 편하게 제공해주는 기능이고

2. 댓글이나/검색할 때 써야 하는 좀 더 

전통적으로 페이징을 하는 건데 

둘 다 원리만 이해한다면 구현하기 

어렵지 않다 한 번만 이해하면 된다

 

boardservice로가서

boardservice.java

 

 

boarddao.findAll(PageRequest.of(page-1pagesize,Sort.by(Sort.Direction.DESC,"bid")));

이 간단한 줄이 페이징을 해준다

무슨 뜻 이냐면 page에 맞게 지정한 pagesize만큼 bid를 내림차순 기준으로 

정렬해서 보내준다 

기가 막힌다 진짜

하나의 놀라운 기능이 또 있다

 

controller로가서

여기서 개인적으로 느끼는 건데

스프링은 진짜 알면 편하고

모르면 아예 못쓰는 거 같다!

model.addAttribute("search"false);

이거는 검색해도 페이징이 돼야 하기 때문에

일반 그냥 boardlist에서는 false로 해주고

/auth/search에서 true를 줄 것이다

그리고 진짜 놀랬던 기능

array.getTotalPages()

page가 가지고 있는 기능인데

이거 외에도 몇 개 더 있는 거 같다

어쨌든 편리하게 내가 db에서 가져올

총개수까지 준다!

 

  <div th:if="${currentpage<totalpage}">

            <form action="/auth/boardlist">

                <input type="hidden" name="page" th:value="${currentpage+1}">

                <input type="submit" value="다음">

            </form>

        </div>

            <div th:if="${currentpage>1}">

                <form action="/auth/boardlist">

                <input type="hidden" name="page" th:value="${currentpage-1}">

                <input type="submit" value="이전">

                </form>

            </div>

이렇게 이전/다음 버튼을 컨트롤할 수 있다

 

다음은 검색 기능을 만들자!