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



© 2022. by minkuk

Powered by minkuk