(SpringBoot+JPA CRUD 게시판) 게시판리스트 구현

김지인·2022년 8월 22일
0
post-thumbnail

들어가기 앞서서...

기존에 진행했던 서블릿으로 구성한 CRUD 게시판을 스프링부트로 옮긴 것입니다.


게시판리스트 view


<위 : 서블릿게시판 / 아래 : 스프링게시판>

  • 둘의 차이점이라면 서블릿게시판에서는 jstl으로 했고, 스프링게시판에서는 타임리프를 적용했다.

게시판 테이블 view

  • 서블릿 게시판에서는 jstl의 foreach구문을 이용해서 table 리스트를 받아와 해당 데이터의 요소들을 뿌려주었고, 스프링게시판도 마찬가지로 타임리프의 th:each구문을 이용해서 데이터를 뿌려주었다.

게시판 검색 view

  • 기존의 서블릿게시판에서는 검색키워드에 따라서 페이징처리도 해야했기 때문에 hidden속성으로 현재페이지를 나타내는 currentPagesearch로 매핑된 컨트롤러로 보내줬다.
  • 스프링 게시판에서는 검색키워드인 searchKeyword만 해당 컨트롤러에 매핑정보로 넘긴다.

게시판 페이징 view

  • 기존의 서블릿게시판에서는 자바의 for문법을 통해 1페이지 부터 마지막페이지까지 번호를 출력하고 해당 번호를 입력했을때 a태그를 통해 search로 매핑된 컨트롤러에 현재페이지와 검색키워드를 넘겨주었다.
  • 스프링에서도 많이 다르진 않은데, 타임리프의 th:each를 이용해 1페이지부터 전체 페이지까지 번호를 출력하고 해당 번호링크에 페이지와 검색키워드를 넘겨준다. (page에 -1을 한 이유는 view에서는 1페이지부터 시작하지만 컨트롤러에서는 0부터 시작하기 때문이다.)

게시판리스트 컨트롤러

  • 기존의 서블릿 게시판에서는 검색키워드가 만약 안들어왓다면 빈 문자열 처리를 해줫으나, 스프링 게시판에서는 키워드 없이 해당 데이터베이스의 테이블리스트를 뿌려주고, 데이터가 있으면 키워드와 페이징처리된 리스트를 가져오도록 했다.
  • 서블릿 게시판에서는 따로 페이징 처리를 위해 직접 sql문을 통해 전체 데이터 개수를 가져와야 했으나, 스프링게시판에서는 page객체의 함수 getTotalPages()를 통해 전체 페이지수를 가져왓다.

게시판리스트 DAO, 서비스

  • 확실히 JPA를 통해 많이 편해진 것을 볼 수 있다. 서블릿의 저 긴 로직을 단 두개의 함수 getTableListgetTableSearchList로 나타낼 수 있었다.

    (단 한줄로 검색키워드 페이징처리 구현)
profile
에러가 세상에서 제일 좋아

0개의 댓글