1. 개요
이 기사에서는 Spring MVC에서 제공 하는 핵심 org.springframework.ui.Model , org.springframework.ui.ModelMap 및 org.springframework.web.servlet.ModelAndView 의 사용법을 살펴 보겠습니다 .
2. Maven 의존성
pom.xml 파일 에서 spring-context 의존성으로 시작해 보겠습니다 .
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
스프링 컨텍스트 의존성의 최신 버전은 여기 에서 찾을 수 있습니다 .
의 경우 의 ModelAndView 의 스프링 웹 의존성이 필요합니다 :
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
최신 버전의 spring-web 의존성은 여기 에서 찾을 수 있습니다 .
그리고 Thymeleaf를 뷰로 사용하는 경우이 의존성을 pom.xml에 추가해야합니다.
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
최신 버전의 Thymeleaf 의존성은 여기 에서 찾을 수 있습니다 .
3. 모델
여기서 가장 기본적인 개념 인 모델 부터 시작하겠습니다 .
간단히 말해, 모델은 뷰 렌더링에 사용되는 속성을 제공 할 수 있습니다.
사용 가능한 데이터가있는 뷰를 제공하기 위해이 데이터를 Model 개체에 추가하기 만하면 됩니다. 또한 속성이있는 맵은 모델 인스턴스 와 병합 될 수 있습니다 .
@GetMapping("/showViewPage")
public String passParametersWithModel(Model model) {
Map<String, String> 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 코드 내에서 액세스 할 수 있습니다.
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Title</title>
</head>
<body>
<div>Web Application. Passed parameter : th:text="${message}"</div>
</body>
</html>
여기에 전달 된 매개 변수 는 자리 표시 자라고하는 $ {message} 구문을 통해 사용됩니다 . Thymeleaf 템플릿 엔진은이 자리 표시자를 모델을 통해 전달 된 동일한 이름의 속성의 실제 값으로 대체합니다.
7. 결론
이 빠른 예제에서 우리는 Spring MVC의 세 가지 핵심 개념 인 Model , ModelMap 및 ModelAndView를 논의했습니다 . 또한 뷰에서 이러한 값을 사용할 수있는 방법에 대한 예를 살펴 보았습니다.
항상 그렇듯이 이러한 모든 예제 및 코드 스 니펫의 구현은 Github 에서 찾을 수 있습니다 .
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/spring-mvc-model-model-map-model-view
'Java' 카테고리의 다른 글
Java Weekly, 365 호 (0) | 2021.04.13 |
---|---|
스프링 컨트롤러에 대한 빠른 사용방법(예제) (0) | 2021.04.13 |
Spring 웹 컨텍스트 (0) | 2021.04.12 |
Spring 선택적 경로 변수 (0) | 2021.04.12 |
Spring MVC를 사용한 JSON 매개 변수 (0) | 2021.04.12 |