ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • @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();를 하면 세션이 제거됩니다.

    반응형

    댓글

Designed by Tistory.