컨트롤러와 화면에서 목록처리

Shaun·2021년 8월 2일
0

project

목록 보기
5/9

컨트룰러

  • @controller선언
  • @RequestMapping (클라가 들어오는 주소라고 생각하면 좋다)
  • Model은 결과 데이트를 화면에 전달하기 위해 사용한다

스프링 MVC는 파라미터를 자동으로 수집해 주는 기능이 있으므로 Page와 size 라는 파라미터를 전달하면 PageRequestDTO 객체로 자동 수집 된다.

즉 엔티티 컬럼에 맞는 파라미터를 보내면 자동으로 수집되는 기능이다. servlet/jsp 를 해보신 사람들이라면 너무 편한 기능이다. 코드량도 많이 줄고 너무 좋은 기능 같다.

화면(view)

  • 간단히 static 은 css 나 javascrpit 가 들어가고 templates에는 html 뼈대가 들어간다고 생각하면 좋다.

list.html

  • 화면에 데이터를 나타낼때는 thymeleaf를 사용 했다.
  • th:eachg를 이용해서 PageResultDTO 안에 있는 dtoList를 반복 처리한다.
  • 마지막에 시간처리는 년/월/일/ 순으로 포맷하여 출력한다.

    잠깐! tr, th ,td 가 뭐지???

※ 박스모델 = https://aboooks.tistory.com/59

목록 페이지 처리+페이지 번호 링크처리

  • /list?page=2 처럼 페이지 번호를 변경하면 해당 페이지가 나오는 코드를 만든다.

  • 페이지의 '이전(previous)'와 '다음(next)' 부분은 타임리프 if 를 이용해서 처리한다.

  • 페이지 중간에 현재 페이지 여부를 체크해서 'active' 라는 이름의 클래스가 출력 되도록 한다.

  • '이전(previous)'의 경우에는 pageResultDTO 의 start 값에서 1보다 적은 값으로 지정하고 '다음(next)' 은 반대로 pageResultDTO의 end값보다 1이크도록 지정한다.

등록 페이지와 등록 처리

  • 등록 작업은 GET방식에서는 화면을 보여주고, POST방식은 처히루에 목록 페이지로 이동하도록 만든다.

RedirectAttribute ??? addFlashAttribute ?? 처음보는데!?

  • 별거없다. addAttriubute 처럼 redirect되는 페이지에(view) 정보를 보내기 위한 RedirectAttribute 라 고 생각하면 된다.
  • addFlashaAttriburte 는 단한번만 데이터를 전달하는 용도로 사용한다.
  • 브라우저에 전달되는 'msg'를 이용해서 화면상에 모달 창이 보이게 처리한다.

register.html

  • form 태그로 method 를 post로 지정해 데이터를 전송 할수있도록 한다.
  • Servlet/JSP 에서는 Input name값에 맞춰서 getParamether를 받고해야 하지만 여기서는 DTO에 수집될 데이터이므로 동일하게 맞춰주기만 하면 자동으로 수집 된다. 코드양도 많이 줄고 너무 편한 기능이다.

등록 처리와 목록 페이지의 모달창


-list페이지 일부-

  • 등록이 처리된후 모달 창을 이용해 '처리되었다' 라는 결과를 보여준다.

  • Thymeleaf의 inline 속성을 이용해서 처리하면 별도의 타입 처리가 필요없다..

  • 등록 후에는 msg 변수에 새로 생성된 글의 번호가 할당 되므로 msg를 이용해 모달창을 실행 한다.

등록 페이지의 링크와 조회 페이지 링크 처리

목록 페이지에서 남은 작업으 등록버튼(링크) 제공과 목록에 있는 각 글의 번호나 제목을 클릭했을때 조회 페이지(detail) 로 이동 하는 작업이다.

  • 조회 페이지로 이동하는 링크를 작성 할때는 항상 다시 목록 페이지로 돌아오는 것을 염두에 두고 작업한다.
profile
호주쉐프에서 개발자까지..

0개의 댓글

관련 채용 정보