기존에 진행했던 서블릿으로 구성한 CRUD 게시판을 스프링부트로 옮긴 것입니다.
<위 : 서블릿게시판 / 아래 : 스프링게시판>
- 둘의 차이점이라면 서블릿게시판에서는 jstl으로 했고, 스프링게시판에서는 타임리프를 적용했다.
- 서블릿 게시판에서는 jstl의 foreach구문을 이용해서 table 리스트를 받아와 해당 데이터의 요소들을 뿌려주었고, 스프링게시판도 마찬가지로 타임리프의 th:each구문을 이용해서 데이터를 뿌려주었다.
- 기존의 서블릿게시판에서는 검색키워드에 따라서 페이징처리도 해야했기 때문에
hidden
속성으로 현재페이지를 나타내는currentPage
를search
로 매핑된 컨트롤러로 보내줬다.- 스프링 게시판에서는 검색키워드인
searchKeyword
만 해당 컨트롤러에 매핑정보로 넘긴다.
- 기존의 서블릿게시판에서는 자바의 for문법을 통해 1페이지 부터 마지막페이지까지 번호를 출력하고 해당 번호를 입력했을때
a
태그를 통해search
로 매핑된 컨트롤러에 현재페이지와 검색키워드를 넘겨주었다.- 스프링에서도 많이 다르진 않은데, 타임리프의
th:each
를 이용해 1페이지부터 전체 페이지까지 번호를 출력하고 해당 번호링크에 페이지와 검색키워드를 넘겨준다. (page에 -1을 한 이유는 view에서는 1페이지부터 시작하지만 컨트롤러에서는 0부터 시작하기 때문이다.)
- 기존의 서블릿 게시판에서는 검색키워드가 만약 안들어왓다면 빈 문자열 처리를 해줫으나, 스프링 게시판에서는 키워드 없이 해당 데이터베이스의 테이블리스트를 뿌려주고, 데이터가 있으면 키워드와 페이징처리된 리스트를 가져오도록 했다.
- 서블릿 게시판에서는 따로 페이징 처리를 위해 직접 sql문을 통해 전체 데이터 개수를 가져와야 했으나, 스프링게시판에서는 page객체의 함수
getTotalPages()
를 통해 전체 페이지수를 가져왓다.
- 확실히 JPA를 통해 많이 편해진 것을 볼 수 있다. 서블릿의 저 긴 로직을 단 두개의 함수
getTableList
와getTableSearchList
로 나타낼 수 있었다.
(단 한줄로 검색키워드 페이징처리 구현)