์น ๊ฐ๋ฐ ๋ฐฉ์
1.
์ ์ ์ปจํ
์ธ
2.
MVC ์ ํ
ํ๋ฆฟ ์์ง
3.
API
์ ์ ์ปจํ ์ธ
resources/static ํด๋์ ์ ์ html ํ์ผ์ ๋๋ฉด ํด๋ผ์ด์ธํธ์์ ํด๋น ํ์ผ๋ช
์ฃผ์๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
๋ด๋ถ ๋์ ์๋ฆฌ
์ปจํธ๋กค๋ฌ๊ฐ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ค.
1.
ํด๋ผ์ด์ธํธ ๋จ์์ ์์ฒญ์ด ๋ค์ด์จ๋ค.
2.
์ปจํธ๋กค๋ฌ์์ ํด๋น ์์ฒญ๊ณผ ๋งคํ๋ผ์๋ ์ปจํธ๋กค๋ฌ๋ฅผ ์ดํด๋ณธ๋ค.
3.
๋ง์ฝ ๋งคํ๋ ์ปจํธ๋กค๋ฌ๊ฐ ์์ผ๋ฉด static ํด๋์ ์ ์ ํ์ผ์ ์๋ตํ๋ค.
resources/static/hello-static.html
<!DOCTYPE HTML>
<html>
<head>
<title>static content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
์ ์ ์ปจํ
์ธ ์
๋๋ค.
</body>
</html>
HTML
๋ณต์ฌ
MVC์ ํ ํ๋ฆฟ ์์ง
Controller
HelloController.java
@Controller
public class HelloController {
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value = "name") String nameValue, Model model){
model.addAttribute("name", nameValue);
return "hello-template";
}
}
Java
๋ณต์ฌ
View
templates/hello-template.html
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}"></p>
</body>
</html>
HTML
๋ณต์ฌ
๊ฒฐ๊ณผ
์ฟผ๋ฆฌ์คํธ๋ง์ด ์์ผ๋ฉด error page ๊ฐ ๋ฌ๋ค.
@RequestParam ์์ required=false ์ต์
์ ์ฃผ๋ฉด ํ๋ผ๋ฏธํฐ๊ฐ ์์ ์ null ๋ก ์ฒ๋ฆฌ๋๋ค.
@Controller
public class HelloController {
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value = "name", required = false) String nameValue, Model model){
model.addAttribute("name", nameValue);
return "hello-template";
}
}
Java
๋ณต์ฌ
์ฟผ๋ฆฌ์คํธ๋ง์ผ๋ก name=spring! ์ ๋๊ฒผ์ ๋์ ๊ฒฐ๊ณผ
thymeleaf ํ
ํ๋ฆฟ ์์ง์์ ์ฟผ๋ฆฌ์คํธ๋ง์ ๋ฐ์์ spring! ์ ์ถ๋ ฅํด์ฃผ๊ณ ์๋ค.
๋ด๋ถ๋์
API ํต์ ๋ฐฉ์
response๋ก ๋ฌธ์์ด ๋ฆฌํด
@Controller
public class HelloController {
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String nameValue) {
return "hello " + nameValue; // ๋ฌธ์์ด ๋ฆฌํด
}
}
Java
๋ณต์ฌ
@ResponseBody ๋ผ๋ ์ด๋
ธํ
์ด์
์ ๋ฌ์์ฃผ๋ฉด return ๊ฐ์ด http response ์ body ๊ฐ์ด ๋๋ค.
์์ฒญ๊ฒฐ๊ณผ
response ๋ก json ๋ฆฌํด
๊ฐ์ฒด๋ฅผ ๋ฆฌํด ์, Json ์ผ๋ก ๋ณํํด์ response body ๋ก ๋๊ฒจ์ค๋ค. (์คํ๋ง๋ถํธ ๋ํดํธ์ค์ )
@Controller
public class HelloController {
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String nameValue) {
Hello hello = new Hello();
hello.setName(nameValue);
return hello; // hello ๊ฐ์ฒด๋ฅผ json ์ผ๋ก ๋ฆฌํด
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
Java
๋ณต์ฌ
ย Hello ํด๋์ค์ name ๋ฉค๋ฒ๋ private ์ด๋ฏ๋ก public ํ ๋ฉ์๋์ธ getter ์ setter ๋ก name ๋ฉค๋ฒ์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
ย getter, setter ์๋์์ฑ์ cmd + n ์ ํตํด์ ๊ฐ๋ฅํ๋ค.
์์ฒญ๊ฒฐ๊ณผ