[spring] @SessionAttributes 세션
by mini_min[spring] @SessionAttributes 세션
✔️ @SessionAttributes
: Model 객체를 세션에 저장하고 사용하기 위한 애노테이션 (@ModelAttribute 과 이름이 동일해야한다!)
: 클래스 레벨에서 선언 가능하다.
: 지속적으로 값을 유지시키거나 여러 단계로 submit 되는 폼을 구현할 때 사용한다.
: double submit 방지- 브라우저 뒤로가기 안된다.
👩💻 ex12 예제
- @ModelAttribute 객체와 이름이 동일해야한다. (user 라는 이름으로 세션에 저장)
@SessionAttributes("user")
@Controller("ex12.userController")
@RequestMapping("/ex12/*")
public class UserController {
//세션에 유저라는 이름으로 저장. User의 객체가 저장.
@ModelAttribute("user")
public User command() {
return new User();
}
}
- @ModelAttribute("user") User user //user 를 받아버림
✨ sessionStatus.setComplete(); : 세션에 있는 내용 지우기
: 세션에 있는 내용은 지워야한다.
@PostMapping("step1")
public String step1(
@ModelAttribute("user") User user //user 를 받아버림
) {
return "ex12/step2";
}
@PostMapping("step2")
public String step2(
@ModelAttribute("user") User user,
SessionStatus sessionStatus,
Model model
) {
String s = "이름:"+user.getName()+"<br>"
+ "이메일:"+user.getEmail()+"<br>"
+ "아이디:"+user.getId()+"<br>"
+ "패스워드:"+user.getPwd()+"<br>"
+ "전화번호:"+user.getTel();
sessionStatus.setComplete(); // 세션에 저장된 내용 지우기!
//세션에 있는 내용은 지워야한다.
model.addAttribute("message", s);
return "ex12/complete";
}
'Spring' 카테고리의 다른 글
[Mybatis] mapper - 게시글 등록 (0) | 2022.11.15 |
---|---|
[spring] @RequestBody & @RequestBody (JSON) (0) | 2022.11.14 |
[spring] RedirectAttributes & ModelAttribute (0) | 2022.11.14 |
[spring] List 배열로 요청 파라미터 받기 (0) | 2022.11.14 |
[spring] RequestParam (0) | 2022.11.14 |
블로그의 정보
개발자 미니민의 개발로그
mini_min