방명록의 조회/수정/삭제 처리
위와 같이 조회페이지로 들어가게 되면 수정 페이지, 목록 페이지로 갈 수 있게 설계한다.
삭제는 수정페이지에 들어간 후 처리할 수 있게한다.
Service 계층
조회,삭제,수정 처리를 위한 변수 read,remove,modfiy를 인터페이스에 선언한다.
조회
gno를 Optional타입의 result로 받고 그것이 엔티티 객체라면 엔티티 객체를 DTO로 변환해서 반환한다
삭제
.
수정
방명록의 수정은 기존의 엔티티에서 '제목'과 '내용'만을 수정하고 다시 저장하는 방식으로 구현한다.
Controller 계층
- GET방식으로 gno 값을 받아와서 Model에 GuestbookDTO 객체를 담아서 전달한다.
- 다시 목록 페이지로 돌아오는 데이터를 같이 저장하기 위해 PageRequestDTO를 파라미터로 같이 사용한다.
- @ModelAttribute 는 없어도 처리가 가능하나 명시적으로 requestDTO라는 이름으로 처리한다.
방명록의 삭제는 POST 방식으로 gno 값을 전달하고, 삭제 후에는 다시 목록의 첫 페이지로 이동한다.
- 수정 처리는 POST 방식으로 이루어진다.
- GuestbookDTO : 수정해야 하는 글의 정보를 가진다.
- PageRequestDTO : 기존의 페이지 정보를 유지하기 위해 가진다.
- RedirectAttributes : 마지막 리다이렉트로 이동하기 위해 가진다.
- 수정 시에 수정해야 하는 내용이 전달되고, 수정된 후에는 목록 페이지로 이동하거나 조회 페이지로 이동해야 한다. 이때 기존 페이지 정보도 같이 유지하여 다시 목록 페이지로 가기 위해 page와 gno를 이용하여 전달한다.
read.html
modify.html
위와 같이 Remove 버튼을 클릭하면 <form>태그의 action 속성과 method 속성을 조정한다.
<form> 태그 내에 <input> 태그로 gno를 추출하여 삭제 시에 이용하게 된다.
'코드로 배우는 스프링부트 웹 프로젝트' 카테고리의 다른 글
Springboot) @Controller와 @RestController의 차이 (0) | 2021.12.28 |
---|---|
Springboot) 관계형 DB 설계를 통한 Lazy loding/Eager loding 차이 , @ToString ,JPQL을 이용한 join (0) | 2021.12.13 |
Springboot) GET & POST 방식의 차이점 / 등록 페이지와 등록 처리 (1) | 2021.12.09 |
Springboot) 목록 처리 (0) | 2021.12.06 |
Springboot) 서비스 계층과 DTO (0) | 2021.12.02 |