Spring
Framework
π[Spring] .addAttribute()
λ©μλ.
1οΈβ£ .addAttribute()
λ©μλ.
-
.addAttribute()
λ Spring MVCμμ Model
λλ ModelMap
κ°μ²΄μ λ©μλλ‘, 컨νΈλ‘€λ¬μμ λ·°λ‘ μ λ¬ν λ°μ΄ν°λ₯Ό μΆκ°νλ λ° μ¬μ©λ©λλ€.
- μ΄ λ©μλλ₯Ό μ¬μ©νμ¬ μ»¨νΈλ‘€λ¬κ° μ²λ¦¬ν κ²°κ³Όλ₯Ό λ·°μ μ λ¬νκ³ , λ·°λ μ΄ λ°μ΄ν°λ₯Ό μ¬μ©ν΄ λμ μΌλ‘ μ½ν
μΈ λ₯Ό λ λλ§ν©λλ€.
2οΈβ£ μ£Όμ κΈ°λ₯.
-
λͺ¨λΈμ λ°μ΄ν° μΆκ°
-
addAttribute()
λ₯Ό μ¬μ©νμ¬ ν€-κ° μ ννλ‘ λ°μ΄ν°λ₯Ό λͺ¨λΈμ μΆκ°ν©λλ€.
- μ΄ λ°μ΄ν°λ μ΄ν λ·°μμ μ¬μ©λ μ μμ΅λλ€.
-
λ·° λλλ§μ λ°μ΄ν° μ λ¬
- λͺ¨λΈμ μΆκ°λ λ°μ΄ν°λ λ·° ν
νλ¦Ώ(μ: Thymeleaf, JSP)μμ μ κ·Ό κ°λ₯νλ©°, μ΄λ₯Ό ν΅ν΄ ν΄λΌμ΄μΈνΈμκ² λμ μΌλ‘ μμ±λ HTMLμ λ°νν μ μμ΅λλ€.
3οΈβ£ μ¬μ© μμ.
@Controller
public class HomeController {
@GetMapping("/home")
public String home(Model model) {
// λͺ¨λΈμ λ°μ΄ν°λ₯Ό μΆκ°
model.addAttribute("message", "Welcome to the Home Page!");
model.addAttribute("date", LocalDate.now());
// "home"μ΄λΌλ λ·° μ΄λ¦μ λ°ν
return "home";
}
}
- μ μ½λμμ
home()
λ©μλλ /home
URLλ‘ GET μμ²μ΄ λ€μ΄μ€λ©΄ μ€νλ©λλ€.
-
Model
κ°μ²΄λ₯Ό μ¬μ©νμ¬ "message"
μ "date"
λΌλ λ κ°μ μμ±μ μΆκ°ν©λλ€.
- μ΄ μμ±λ€μ βhomeβμ΄λΌλ λ·°(μ:
home.html
λλ home.jsp
)μμ μ¬μ©λ©λλ€.
4οΈβ£ λ·°μμμ μ¬μ© μμ(Thymeleaf)
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Home Page</title>
</head>
<body>
<h1 th:text="${message}">Default Message</h1>
<p>Today's date is: <span th:text="${date}">01/01/2024</span></p>
</body>
</html>
- μμ Thymeleaf ν
νλ¦Ώμμ
${message}
μ ${date}
λ 컨νΈλ‘€λ¬μμ addAttribute()
λ₯Ό ν΅ν΄ μΆκ°λ λ°μ΄ν°λ₯Ό λνλ
λλ€.
- 컨νΈλ‘€λ¬μμ μ 곡ν
"Welcome to the Home Page!"
μ νμ¬ λ μ§κ° λ·°μ λ λλ§λ©λλ€.
5οΈβ£ .addAttribute()
μ λ€μν μ¬μ© λ°©λ².
-
1. ν€μ κ° μμΌλ‘ μ¬μ©
- κ°μ₯ κΈ°λ³Έμ μΈ μ¬μ© λ°©λ²μΌλ‘, 첫 λ²μ§Έ μΈμλ‘ μμ±μ μ΄λ¦μ, λ λ²μ§Έ μΈμλ‘ μμ±μ κ°μ μ§μ ν©λλ€.
model.addAttribute("username", "JohnDoe");
-
2. ν€ μμ΄ κ°λ§ μ λ¬
- ν€λ₯Ό μλ΅νκ³ κ°λ§ μ λ¬ν μλ μμ΅λλ€.
- μ΄ κ²½μ° Springμ μ λ¬λ κ°μ²΄μ ν΄λμ€ μ΄λ¦μ κΈ°λ³Έ ν€λ‘ μ¬μ©ν©λλ€.(첫 κΈμλ μλ¬Έμλ‘).
User user = new User("John", "Doe");
model.addAttribute(user);
// "user"λΌλ ν€λ‘ λͺ¨λΈμ μΆκ°λ©λλ€.
-
3. 체μ΄λ(Chaining)
-
addAttribute()
λ λ©μλ 체μ΄λμ΄ κ°λ₯νμ¬, μ¬λ¬ κ°μ μμ±μ ν λ²μ μΆκ°ν μ μμ΅λλ€.
model.addAttribute("name", "Jane")
.addAttribute("age", 30)
.addAttribute("city", "New York");
-
.addAttribute()
λ Spring MVCμμ 컨νΈλ‘€λ¬μ λ·° μ¬μ΄μ λ°μ΄ν°λ₯Ό μ λ¬νλ μ€μν μν μ νλ©°, λμ μΈ μΉ μ ν리μΌμ΄μ
κ°λ°μ νμμ μΈ μμμ
λλ€.