@SessionAttributes({" "}), @ModelAttribute(" ") 의 사용
* 여러 단계의 폼 입력이 필요한 경우
원래 컨트롤러의 메소드마다 (OrderForm orderform)을 적어놓으면
-> 스텝별로 이동하면서 컨트롤러에서 OrderForm 객체를 만들어서 폼에 있는 값을 알아서 집어넣음
-> 근데 문제는, 스텝별로 각각 다른 새로운 OrderForm 객체가 생김
-> model에 "form" 이름으로 OrderForm 객체를 저장
-> @SessionAttributes({"form"}) : model에 form이라는 이름으로 저장된 객체를 세션객체의 속성으로 바로 저장시킴
-> 요청핸들러 메소드 매개변수를 (@ModelAttribute("form") OrderForm form) 으로 바꿈
-> 요청객체 혹은 세션객체에서 "form"이라는 속성명으로 저장된 객체를 조회
-> 앞단계에서 세션객체에 "form"이라는 속성명으로 저장된 OrderForm 객체를 가져와서 주문정보를 저장
-> 그 객체에 배송정보, 결제정보 저장
* 수정 작업
앞의 PostModifyForm에는 수정전 내용이 저장되어 있음
그걸 model에 속성으로 저장 -> 바로 세션객체에 postModifyForm 이라는 이름으로 저장
-> 수정화면에서 수정한 내용들로 제출 -> PostModifyForm에는 수정된 내용이 저장
-> @ModelAttributes("postModifyForm")을 통해 세션객체에 "postModifyForm"이라는 이름으로 저장된 객체를 조회
-> 변경된 내용이 포함된 PostModifyForm 객체를 서비스로 전달
게시글 수정폼
* PostController
- @SessionAttributes({"modifyPost"}) : 이 이름으로 세션에 저장
- model 객체에 저장 -> 같은 이름으로 세션에 저장
* PostModifyForm 수정폼 객체 생성 (DetailDto랑 똑같이 만들어줌- 내용만 변경할거야)
* modify-form.jsp
- model 객체에 "modifyPost" 이름으로 저장했으니까 "modifyPost" 이름으로 꺼내기
- name은 PostmodifyForm의 변수명과 똑같이 -> 그래야 PostmodifyForm 객체가 전달될 때 그 이름에 맞게 값이 들어감
원래의 게시글 내용이 복사된 수정폼 모습
게시글 수정
* PostController
- @ModelAttribute("modifyPost") : 세션에 "modifyPost" 이름으로 저장된 객체를 꺼내옴
* PostService
'수업내용 > Spring' 카테고리의 다른 글
[2023.1.18.수] REST API (0) | 2023.01.18 |
---|---|
[2023.1.17.화] 스프링 부트 (0) | 2023.01.17 |
[2023.1.16.월] 스프링 MVC 웹 애플리케이션 8 (사용자정보 표시 - ajax연동 JSON을 응답으로 받기) (0) | 2023.01.16 |
[2023.1.13.금] 스프링 MVC 웹 애플리케이션 7 (태그 추가, 첨부파일 다운로드) (0) | 2023.01.13 |
[2023.1.12.목] 스프링 MVC 웹 애플리케이션 6 (트랜잭션, 첨부파일 업로드) (0) | 2023.01.12 |