@ModelAttribute
1) 파라미터 타입의 오브젝트를 만든다.
- User user라는 파라미터 선언이 있다면 User 타입의 오브젝트를 생성하므로 디폴트 생성자가 반드시 필요하다.
- @SessionAttribute에 의해 세션에 저장된 모델 오브젝트가 있다면, 새로운 오브젝트를 생성하는 대신 세션에 저장되어 있는 오브젝트를 가져온다.
2) 준비된 모델 오브젝트의 프로퍼티에 웹 파라미터를 바인딩 해준다.
- 프로퍼티가 스트링이 아니라면 적절한 변환이 필요함.
- 스트링 전환이 불가능한 경우라면, BindingResult 오브젝트 안에 바인딩 오류를 저장해서 컨트롤러로 넘겨주거나 예외를 발생시킨다. (088번 참조)
3) 모델의 값을 검증
- 필수프로퍼티인데 값이 없거나, 숫자의 경우 지정된 범위를 넘었거나 등의 검증작업을 진행한다.
> 스프링에선 모델 검증 분리가 가능하다.
'스프링' 카테고리의 다른 글
091.WEB_모델과바인딩검증_프로퍼티에디터_싱글톤 (0) | 2021.02.19 |
---|---|
90. @SessionAttribute와SessionStatus (0) | 2021.02.18 |
AnnotationMethodHandlerAdapter_파라미터타입_애노테이션 (0) | 2021.02.16 |
[spring] 제네릭스_매핑정보상속_컨트롤러 (0) | 2021.02.15 |
[spring] MVC이론_requestMapping (0) | 2021.02.14 |