-
@SessionAttributes 사용하기 [Spring]Spring 2017. 8. 23. 16:23반응형
01. SessionAttributes 란?
1-1. 컨트롤러 메소드가 생성하는 모델 정보 중에서 @SessionAttributes에 지정한 이름과
동일한 이름이 있다면 이를 세션에 저장해준다.
- 뷰가 이 모델을 참조해서 기존 사용자 정보를 폼에 뿌려줄 수 있게 하기 위해서 이다.
1-2. @ModelAttribute가 지정된 파라미터가 있을 때 이 파라미터에 전달해줄 오브젝트를 세션에서 가져온다.
- 세션에 같은 이름의 오브젝트가 존재하는지 확인.
- 존재한다면 세션에 있는 오브젝트를 가져와 @ModelAttribute파라미터로 전달해 줄 오브젝트 사용
- 존재하지 않는 다면 오브젝트를 새로 만들어서 오브젝트로 사용
1-3. 연속해서 클라이언트로부터 submit이 날라오는 경우 중복 submit을 방지할 때 사용 됩니다.
- SessionAttributes을 담은 객체는 SessionStatus의 setComplete()를 호출해주기 전까지 계속 담겨 있습니다.
개념 출처 : http://willrain.tistory.com/10
예제로 보게 된다면 먼저 새로운 Spring Project를 생성해 주도록 합니다.
빨간색으로 표시한곳이 @SessionAttributes로 지정한 것이 "id" 이며 그것을 활용하기 위해
model.addAttribute()에 key값을 "id"로 value값을 Mindols로 넘겨 주었습니다.
key값을 "id" 로 넘겨 주었으니 view단에서도 ${id}로 받아 주도록하며 local에서 확인을 하도록
합니다.
SessionAttributes("id") 를 선언하여 key 값을 id로 하니 넘어가는것을 확인할 수 있고 계속해서 유지 하고 있습니다. 세션을 제거 하기위해서는 파라미터에 SessionStatus session 을 추가해주고
sessionStatus.setComplete();를 하면 세션이 제거됩니다.
반응형'Spring' 카테고리의 다른 글
ContentNegotiatingViewResolver 사용하기 [Spring] (0) 2017.09.28 @PathVariable, @RequestParam [Spring] (0) 2017.08.24 @Schedule 사용하기 [Spring] (0) 2017.01.12 10-2. MongoDB를 활용한 훼이스북 만들기02 [Spring] (0) 2016.11.24 10-1. MongoDB를 활용한 훼이스북 만들기01 [Spring] (0) 2016.11.24