Spring

Spring - MVC @ModelAttribute의 다른사용방법

엔꾸꾸 2019. 8. 1. 21:27

Spring - @ModelAttribute의 다른 사용법

  • @ModelAttribute
    • Spring 2.5 부터 지원
    • @RequestMapping을 사용한 Handler Method Argument에 사용
    • @Controller or @ControllerAdvice를 사용한 클래스에서 Model 정보를 초기화할때 사용한다.
      • 공통적으로 참조해야하는 정보가 있는경우
    • @RequestMapping과 함께 사용하면 해당 Method에서 Return하는 객체를 Model에 담아준다.
      • RequestToViewNameTranslator 를 사용 요청으로부터 ViewName을 유추하여 View를 Return해준다.

  • Handler Method에서 공통적으로 참조하는 Model 정보를 만드는 2가지방법
      1. model객체에 직접 담아준다.
      1. @ModelAttribute("키값") 형태로 정의해준다면 return하는 객체를 해당하는 키값으로 담아준다.
        • 키값을 지정하지않는경우 임의의 키값으로 담아준다 (기본전략은 해당 Class명 camelCase)

정리

  • @ModelAttribute는 Controller에 존재하는 HandlerMethod에서 공통으로 참조해야하는 Model정보가 있다면 해당 Model정보의 초기화 목적으로 사용이 가능하다.
  • 2가지 방법이 존재한다.
      1. @ModelAttribute를 사용한 Method의 Argument로 Model객체를 받아와 model에 직접 담아주는 방법
      1. @ModelAttribute를 사용한 Method에서 객체를 return 하면 Model에 자동적으로 담아주는 방법
      • Model의 키값을 지정할 수 있이며 생략할경우 기본 전략은 해당 Class명 camelCase