Programming/Spring

[Spring Boot] @SessionAttridutes, @ModelAttribute란?

JeongKyun 2022. 4. 9.
반응형

client <--server--> session 관계 이미지

서론

이번글에서는 타이틀에서 언급한 세션 관련된 애노테이션에 대해 학습해보려한다. 바로 알아보도록 하자.

 


 

@ModelAttridute란?

사용자가 요청 시 전달하는 값을 오브젝트 형태로 매핑해주는 애노테이션이다.

 


 

@SessionAttridutes란?

모델 정보를 HTTP 세션에 저장해주는 애노테이션이다.

1. 컨트롤러 메서드 중 @SessionAttridutes에 지정한 이름과 동일한 이름이 있다면
   이를 세션에 저장시켜주는 역할을 한다.
>> 뷰가 이 모델을 참조해서 기존 사용자 정보를 폼에 바인딩 시키기 위해서이다.

2. 여러 화면에서 사용해야 하는 객체를 세션에서 공유할 때 사용한다.

3. @ModelAttribute가 지정된 파리미터가 있을 때 해당 파라미터에 전달해줄  
    오브젝트를 세션에서 가져온다.

4. 연속해서 클라이언트로부터 Submit이 날라오는 경우 중복 Submit을 방지해주는 역할도 한다.

5. ​SessionAttributes를 사용하면 @ModelAttribute 또는 model.addAttribute()를 활용하여 객체를 저장할 경우 세션에 저장이 되도록 지정할 수 있다.

>> 데이터를 세션에 계속 담아두기 때문에 sessionStatus를 활용하여 초기화를 해줘야한다. 
-> sessionStatus.setComplete(); 

댓글

💲 많이 본 글