MVC์ ํ ํ๋ฆฟ ์์ง
- MVC: Model, View, Controller
Controller
package com.devkobe.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class HelloController {
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
}
View
<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
MVC, ํ
ํ๋ฆฟ ์์ง ์ด๋ฏธ์ง.
- ์น ๋ธ๋ผ์ฐ์ ์์
localhost:8080/hello-mvc
๋ฅผ ๋๊น๋๋ค. - ์คํ๋ง ๋ถํธ๋ฅผ ๋์ธ ๋ ํจ๊นจ ๋์ฐ๋ โ๋ด์ฅ ํฐ์ผ ์๋ฒ๋ฅผ
localhost:8080/hello-mvc
๊ฐ ๊ฑฐ์นฉ๋๋คโ. -
๋ด์ฅ ํฐ์ผ ์๋ฒ๊ฐ โ
localhost:8080/hello-mvc
๊ฐ ์์ด~โ ํ๊ณ ๋ ์คํ๋ง์๊ฒ ๋์ง๋๋ค. - ๊ทธ๋ฌ๋ฉด ์คํ๋ง์ โ์!
localhost:8080/hello-mvc
๊ฐhelloController
๋ด๋ถ ๋ฉ์๋์ ๋งคํ์ด ๋์ด์๋ค?!โํ๊ณ ๋ โ๊ทธ ๋ฉ์๋๋ฅผ ํธ์ถํด์ค๋๋ค.โ - ํธ์ถํ ๋ฉ์๋๊ฐ ๋ฆฌํด์ ์ด๋ฆ์ โhello-templeโ์ด๋ผ๊ณ ํ๊ณ , โmodel์ ํค๋ name์ด๊ณ , ๊ฐ์ spring์ผ๋ก ๋ฃ์๊ฒโ์ ์คํ๋ง์๊ฒ ๋๊ฒจ์ค๋๋ค.
- ๊ทธ๋ฌ๋ฉด ์คํ๋ง์ด โviewResolverโ (ํ๋ฉด๊ณผ ๊ด๋ จ๋ ํด๊ฒฐ์ - ๋ทฐ๋ฅผ ์ฐพ์์ฃผ๊ณ ํ ํ๋ฆฟ ์์ง์ ์ฐ๊ฒฐ ์์ผ์ฃผ๋ ๊ฒ์ ๋๋ค.)๊ฐ ๋์ํฉ๋๋ค.
- viewResolver๊ฐ โtemplatesโ ์ โhello-templateโ ์ด๋ผ๋ โ๋ฆฌํด์ String name๊ณผ ๋๊ฐ์ ์์ด๋ฅผ ์ฐพ์์ Thymeleaf ํ ํ๋ฆฟ ์์ง์๊ฒ ์ฒ๋ฆฌํด๋ฌ๋ผ๊ณ ๋๊น๋๋ค.โ
- ๊ทธ๋ฌ๋ฉด โํ ํ๋ฆฟ ์์ง์ด ๋๋๋งโ์ ํ์ฌ โ๋ณํ์ ํ HTMLโ ์ โ์น ๋ธ๋ผ์ฐ์ ์ ๋ฐํํฉ๋๋ค.โ
-
์ ์ ์ผ ๋๋ โ๋ณํ์ ํ์ง ์์์ต๋๋ค.โ ์ฆ, ๊ทธ๋๋ก ๋ฐํ์ ํด์คฌ์ต๋๋ค.
- ์ด๋ฐ โํ ํ๋ฆฟ ์์ง์์๋ ๋ณํ์ํด์ ์น ๋ธ๋ผ์ฐ์ ์ ๋๊ฒจ์ค๋๋ค.โ