Notice
Recent Posts
Recent Comments
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- 내방문자찾아주오
- 랜섬웨어
- Ai
- 페이스북서명운동
- ChatGPT
- 이클립스
- 젤프
- 0원메가패스
- 방문자추적기
- 베이직쎈
- 다음아고라사칭
- 메플리
- 다음아고라서명운동
- Applepay
- 자바
- zelf
- 토스뱅크
- 애플페이
- 예제
- wannacry
- 윈도우11
- 2017티스토리결산
- 컨택리스
- perplexity
- 티스토리
- 토큰탈취
- 토큰털이
- 페이스북
- 취약점
- 2017 티스토리 결산
Archives
- Today
- Total
EdgeSecu
Spring MVC에서 model.addAttribute로 뷰에 데이터 전달하기 본문

model.addAttribute()는 스프링 MVC에서 컨트롤러가 뷰(예: Thymeleaf 템플릿)에 데이터를 전달할 때 사용하는 메서드야. 간단히 말해서, 컨트롤러에서 계산하거나 조회한 값을 뷰에서 참조할 수 있도록 “키–값 쌍”으로 저장해 주는 역할을 해.
예를 들어:
@GetMapping("/hello")
public String hello(Model model) {
String name = "철수";
model.addAttribute("userName", name);
return "greeting"; // src/main/resources/templates/greeting.html
}
위 코드에서 model.addAttribute("userName", name)는 모델에 "userName"이라는 이름으로 "철수" 값을 담는 거야. 그 뒤에 반환되는 뷰 이름(greeting.html)에서 ${userName} 같은 표현으로 꺼내 쓸 수 있어. 즉 컨트롤러 → 뷰로 데이터를 넘기는 통로 역할을 한다고 보면 돼.
- 첫 번째 인자(String key)는 뷰에서 참조할 때 사용할 이름
- 두 번째 인자(Object value)는 실제로 전달할 데이터(객체, 문자열, 리스트 등 어떤 타입이든 가능)
Thymeleaf 템플릿 예시:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>인사</title>
</head>
<body>
<h1>안녕하세요, <span th:text="${userName}">홍길동</span>님!</h1>
</body>
</html>
위 템플릿을 렌더링하면 model.addAttribute("userName", "철수") 덕분에 화면에 “안녕하세요, 철수님!”이라고 보여주게 되는 거야.
정리하자면:
- 컨트롤러 메서드에
Model model을 파라미터로 선언한 뒤, model.addAttribute("속성명", 값)을 호출하여 뷰에서 쓰일 데이터를 담고,- 뷰(Thymeleaf 등)에서
${속성명}으로 꺼내 쓰도록 연결하는 방식이야.
컨트롤러는 Model 객체에 `addAttribute` 메소드를 사용하여 뷰 템플릿에 전달할 데이터를 담는다. 뷰 리졸버가 템플릿을 찾고 Thymeleaf가 이 데이터를 렌더링함.
'공부 > Spring' 카테고리의 다른 글
| Spring MVC 파일 업로드 정리: @RequestParam vs @ModelAttribute 활용법 (3) | 2025.07.23 |
|---|---|
| DispatcherServlet, Servlet, Controller 차이 (1) | 2025.07.20 |