MVC: model, view, controller
기존 model1 방식으로는 view에서 controller의 기능까지 다 구현했었다.(jsp)
지금은 따로 분리해서 구현 (- 선택과 집중)
HelloController에 다음 코드를 추가한다.
@Controller
public class HelloController {
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
}
template디렉토리에 hello-template.html생성
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
hello empty부분은 해당 페이지가 정적인 페이지로 열렸을 경우 표시된다.
서버를 실행한 뒤 http://localhost:8080/hello-mvc?name=spring 에 접속하면 다음과 같이 출력된다.
작동 흐름도를 보면 아래와 같다.
request가 오면 전에 했던 방식과 같이 hello-mvc에 맞는 controller를 찾아간다. controller를 보면 name이라는 파라미터를 받도록 되어 있고, 해당 값을 모델 name의 value로 넣어서 hello-template.html에 전달 후 랜더링 한다(view resolver).
해당 페이지의 소스를 보면 다음과 같이 나온다.
p태그 안에 hello spring이 출력되는 것을 확인할 수 있다.