νλ‘μ νΈ λ§λ€μ΄λ³΄κΈ°
2. View νκ²½ μ€μ
νμ¬ νλ‘μ νΈλ₯Ό μ€ννλ©΄ μλ¬ νμ΄μ§λ§ λνλλλ°, μ΄ νμ΄μ§λ₯Ό λ°κΏλ³Ό κ²μ΄λ€.
1) Welcome νμ΄μ§ λ§λ€κΈ°
Welcome νμ΄μ§λ λλ©μΈμ μ λ ₯νκ³ λ€μ΄μμ λ λνλλ 첫 νμ΄μ§λ₯Ό λ§νλ€.
μ€νλ§ λΆνΈλ resources/static ν΄λΉ ν΄λ μμΉμ index.htmlλ₯Ό μμ±νλ©΄ ν΄λΉ νμΌμ Welcome νμ΄μ§λ‘ μΈμνλ€.
μ§κΈ Welcome νμ΄μ§μ μνλ μ μ νμ΄μ§ μνμΈλ°, html νμΌμ μΉμλ²κ° μ½μ΄κ° ν λ¨μ§ 보μ¬μ£ΌκΈ°λ§ νκ³ μλ€.
μ¬κΈ°μ ν νλ¦Ώ μμ§μ μ¬μ©νμ¬ κ°λ°μκ° μνλ λλ‘ λͺ¨μμ λ³κ²½ν μ μλ€.
2) thymeleaf ν νλ¦Ώ μμ§
λμ λ°©μ
μΉ λΈλΌμ°μ μμ μ΄λ€ νμ΄μ§λ₯Ό λμ§λ©΄ λ΄μ₯ ν°μΊ£ μλ²κ° λ°μμ μ€νλ§νν μ λ¬νλ€.
μ λ¬λ°μ μ€νλ§μ λ§€μΉ κ°λ₯ν 컨νΈλ‘€λ¬λ₯Ό μ°Ύμ ν΄λΉ λ©μλλ₯Ό μ€νμν¨λ€. (@GetMapping)
μ΄λ, μ€νλ§μ΄ λͺ¨λΈμ΄λ κ²μ λ§λ€μ΄ ν¨κ» λ£μ΄μ£Όλλ° (Model model)
μ΄ λͺ¨λΈμ μ¬λ¬ μ νΈλ¦¬λ·°νΈλ€μ μΆκ°νμ¬ λ·°μ λ³΄μΌ μ μλλ‘ ν μ μλ€. (model.addAttribute)
κ·Έλ¦¬κ³ μ»¨νΈλ‘€λ¬μμ λ¦¬ν΄ κ°μΌλ‘ λ¬Έμλ₯Ό λ°ννλ©΄ viewResolverκ° νλ©΄μ μ°Ύμμ μ²λ¦¬νλλ°, (return "hello";)
ν νλ¦Ώ μμ§μ κΈ°λ³Έ viewName 맀μΉμ 'resources/templates/{ViewName}.html'μ΄λ€.
Controller
- μΉ μ ν리μΌμ΄μ μ 첫 λ²μ§Έ μ§μ μ μ΄λ€.
- 컨νΈλ‘€λ¬λ₯Ό μμ±νκΈ° μν΄ λ¨Όμ 컨νΈλ‘€λ¬μ ν¨ν€μ§μ java ν΄λμ€ νμΌμ λ§λ€μ΄μΌ νλ€.
package hello.hello.spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller // 컨νΈλ‘€λ¬μμ μλ €μ£Όλ μ΄λ
Έν
μ΄μ
public class HelloController {
@GetMapping("hello") // μΉ μ΄ν리μΌμ΄μ
μμ '/hello'λ‘ λ€μ΄μ€λ©΄ μ΄ λ©μλλ₯Ό νΈμΆνλ€.
public String hello(Model model) {
model.addAttribute("data", "hello!!");
return "hello"; // λ¬Έμμ΄ κ°μ λ§λ htmlμ μ°Ύμ νλ©΄μ 보μ¬μ€λ€.
}
}
View
- HelloControllerμ Viewμ΄λ€.
- νμ리νμ λ¬Έλ²μ μ¬μ©νκΈ° μν΄ thλ‘ μ μΈλμ΄ μλ€.
- {data}λ μμ Controllerμμ μ λ ₯ν λͺ¨λΈ μ νΈλ¦¬λ·°νΈμ key κ°μΌλ‘ μ€ν νλ©΄μ value κ°μ΄ 보μ΄κ² λλ€.
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'μλ
νμΈμ. ' + ${data}" >μλ
νμΈμ. μλ</p>
</body>
</html>
3) μ€ν νλ©΄
http://localhost:8080/ λ‘ λ€μ΄κ°λ©΄ Welcome νμ΄μ§κ° 보μΈλ€.
helloλ₯Ό ν΄λ¦νμ¬ λ€μ΄κ°λ©΄ hello νμ΄μ§μ {data}λ‘ μ λ ₯νλ ν μ€νΈκ° μ νΈλ¦¬λ·°νΈμ value κ°μΌλ‘ λμ€κ³ μλ€.
λ§μ§λ§μΌλ‘ νμ¬ νλ‘μ νΈμ ν¨ν€μ§μ νμΌ κ΅¬μ‘°λ μλμ κ°λ€.