'Model,View,Controller'를 의미한다.
@Controller
public class HelloController {
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-mvc";
}
}
resources/template/hello-template.html
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>
http://localhost:8080/hello-mvc?name=spring
1. 웹 브라우저에서 url( http://localhost:8080/hello-mvc?name=spring )을 넘긴다.
2. 내장 톰캣 서버에서는 이 url을 스프링컨테이너로 던진다.
3. 스프링 컨테이너는 url과 mapping된 controller인 'helloController'를 찾고 해당 method를 호출한다.
그리고 그 method는 return을 해줄때 이름을 'hello-method'라하고, model에 url에 get방식으로 던진 param의 name을 'name'이라 담는다.
4. 스프링인 viewResolver(화면과 관련된 해결자)에서 동작을 한다. 이 viewResolver는 view를 찾아주고, 템플릿엔진을 연결해주는 역할을 한다.
이 viewResolver가 'templates/hello-template.html'을 찾아서 thymeleaf 템플릿 엔진에게 처리해달라고 넘긴다.
5. thymeleaf템플릿 엔진이 렌더링을 해서 변환을 한 HTML을 웹브라우저에게 반환한다.