Spring MVC의 Model, ModelMap 및 ModelAndView

1. 개요

이 기사에서는 Spring MVC에서 제공하는 org.springframework.ui.Model , org.springframework.ui.ModelMaporg.springframework.web.servlet.ModelAndView 핵심 사용법을 살펴 보겠습니다 .

2. Maven 종속성

pom.xml 파일 에서 spring-context 종속성으로 시작해 보겠습니다 .

 org.springframework spring-context 5.2.2.RELEASE 

Spring-context 종속성의 최신 버전은 여기에서 찾을 수 있습니다.

의 경우 의 ModelAndView스프링 웹 의존성이 필요합니다 :

 org.springframework spring-web 5.2.2.RELEASE 

최신 버전의 spring-web 종속성은 여기에서 찾을 수 있습니다.

그리고 Thymeleaf를 뷰로 사용하는 경우이 종속성을 pom.xml에 추가해야합니다.

 org.thymeleaf thymeleaf-spring5 3.0.11.RELEASE 

최신 버전의 Thymeleaf 종속성은 여기에서 찾을 수 있습니다.

3. 모델

여기서 가장 기본적인 개념 인 모델 부터 시작하겠습니다 .

간단히 말해, 모델은 뷰 렌더링에 사용되는 속성을 제공 할 수 있습니다.

사용 가능한 데이터가있는 뷰를 제공하기 위해이 데이터를 Model 개체에 추가하기 만하면 됩니다. 또한 속성이있는 맵은 모델 인스턴스 와 병합 될 수 있습니다 .

@GetMapping("/showViewPage") public String passParametersWithModel(Model model) { Map map = new HashMap(); map.put("spring", "mvc"); model.addAttribute("message", "Baeldung"); model.mergeAttributes(map); return "viewPage"; }

4. 모델

위 의 Model 인터페이스 와 마찬가지로 ModelMap 은 뷰를 렌더링하기 위해 값을 전달하는데도 사용됩니다.

ModelMap 의 장점은 값 모음을 전달하고 이러한 값을 Map 내에있는 것처럼 처리 할 수 ​​있다는 것입니다 .

@GetMapping("/printViewPage") public String passParametersWithModelMap(ModelMap map) { map.addAttribute("welcomeMessage", "welcome"); map.addAttribute("message", "Baeldung"); return "viewPage"; }

5. ModelAndView

뷰에 값을 전달하는 마지막 인터페이스는 ModelAndView 입니다.

이 인터페이스를 사용하면 Spring MVC에서 요구하는 모든 정보를 한 번에 전달할 수 있습니다.

@GetMapping("/goToViewPage") public ModelAndView passParametersWithModelAndView() { ModelAndView modelAndView = new ModelAndView("viewPage"); modelAndView.addObject("message", "Baeldung"); return modelAndView; } 

6.보기

이러한 모델 내에 배치 된 모든 데이터는 일반적으로 웹 페이지를 렌더링하기위한 템플릿보기 인보기에서 사용됩니다.

컨트롤러의 메소드가 대상으로하는 Thymeleaf 템플릿 파일이 뷰로있는 경우. 모델을 통해 전달 된 매개 변수는 thymeleaf HTML 코드 내에서 액세스 할 수 있습니다.

   Title Web Application. Passed parameter : th:text="${message}" 

여기에 전달 된 매개 변수 는 자리 표시 자라고하는 $ {message} 구문을 통해 사용됩니다 . Thymeleaf 템플릿 엔진은이 자리 표시자를 모델을 통해 전달 된 동일한 이름의 속성의 실제 값으로 대체합니다.

7. 결론

이 빠른 튜토리얼에서 우리는 Spring MVC의 세 가지 핵심 개념 인 Model , ModelMapModelAndView를 논의했습니다 . 또한 뷰에서 이러한 값을 사용할 수있는 방법에 대한 예를 살펴 보았습니다.

항상 그렇듯이 이러한 모든 예제 및 코드 조각의 구현은 Github에서 찾을 수 있습니다.