Spring MVC ModelAttribute
Spring Web MVC
백기선님의 강의인 Spring Web MVC 강의를 듣고 공부한 내용을 정리한 글
@ModelAttribute의 다른 사용법
Model에 관련된 기능인 ModelAttribute에 대해 알아보자.
우리는 이전 시간에 @ModelAttribute를 통해 복합 객체를 메소드 아규먼트로 받아올 수 있음을 배웠다.
이번 시간에는 @ModelAttribute 애노테이션을 다르게 사용할 수 있는 방법들에 대해서도 알아보자.
@ModelAttribute 애노테이션은 컨트롤러 공통으로 사용할 모델을 미리 정의해놓고 사용할 수도 있다.
예를 들어 아래와 같다.
@Controller
public class EventController{
@ModelAttribute
categories: framework
categories: framework
}
...
}
이렇게 모델에 사용할 attribute를 선언해둠으로써 중복 코드를 제거할 수 있다는 장점이 있다.
ModelAttribute는 메소드 리턴하는 객체를 모델에 넣어줄 수 있다. 아래의 예시를 보자.
@Controller
public class EventController{
@GetMapping("/event")
@ModelAttribute
public Event modelCreate(){
return new Event()
}
...
}
핸들러와 함께 사용해서 반환되는 객체를 모델에 넣어줄 수 있다.
그럼 여기서 의문이 생길 것이다. “View 이름은 어떻게 주나요?”
이 경우 RequestToViewNameTranslator라는 인터페이스가 이 요청과 정확히 일치하는 ViewTemplate을 반환해준다.
Reference
인프런 백기선님의 스프링 Web MVC