- Published on
스프링 프레임워크 첫걸음 - 6장 : 템플릿 엔진 알아보기
- Authors
- Name
- 손예지(Liv)
스프링에서는 타임리프라는 템플릿 엔진을 사용해 뷰의 표시를 도와줍니다. 타임리프를 사용해 화면에 어떻게
1. 템플릿 엔진이란 ?
템플릿 엔진을 저자는 '데이터를 미리 정의된 템플릿에 바인딩 해서 뷰의 표시를 도와주는 것' 이라고 설명합니다. 이것을 다시 생각해보면 미리 정해진 형태에 맞춰서 화면에 출력해주는 것이라고 할 수 있습니다.
그중 타임리프를 사용해
2. Model 인터페이스
Model 인터페이스는 다음과 같은 특징이 있습니다. (p. 133)
- 처리한 데이터를 뷰에 표시하고 싶을 경우 데이터를 전달하는 역할을 합니다.
Model 객체를 저장하기 위해서는 addAttribute 메서드를 사용해 값을 설정할 수 있습니다. Model 인터페이스를 사용하기 위해서는 요청 핸들러 메서드의 인수에 Model 타입을 전달합니다. Model 타입을 전달하면, 스프링 MVC는 Model 타입의 인스턴스를 생성합니다. addAttribute는 인수로 name, value 를 넣어줍니다.
3. 타임리프를 사용해서 프로그램 만들기
Spring Initializer 을 사용해 스프링 프로젝트를 생성합니다. 이때 build.gradle 에 Thymeleaf 설정을 합니다.
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
타임리프 설정이 완료되었다면, 컨트롤러와 뷰 생성이 필요합니다. 먼저 컨트롤러를 생성합니다. 해당 클래스가 컨트롤러임을 나타내는 @Controller 어노테이션을 입력합니다. showView 클래스에서 Model 타입을 인수로 전달하고, 뷰 이름을 return 값으로 설정합니다. 여기서는 useThymeleaf 라는 이름으로 설정해주었습니다.
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class ThymeleafController {
@GetMapping("show")
public String showView(Model model){
model.addAttribute("name", "이순신");
return "useThymeleaf";
}
}
컨트롤러 설정 후에는 뷰를 생성합니다. 이때 뷰의 위치는 resources/templates 폴더 하위에 있어야 합니다. 컨트롤러에서 리턴값으로 설정해준 뷰 이름 useThymeleaf 이름의 html 파일을 설정해줍니다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head>
<meta charset="UTF-8">
<title>Thymeleaf Sample</title>
</head>
<body>
<!-- 01: 직접 문자를 삽입 -->
<h1 th:text="'hello world'"> 표시하는 부분</h1>
<!-- 02: 인라인 처리 -->
<h1>안녕하세요 ! [[${name}]]씨</h1>
<!-- 03: 값 결합 -->
<h1 th:text="'오늘의 날씨는 ' + '맑음 ' + '입니다'">표시하는 부분</h1>
</body>
</html>
정리
참고자료:
스프링프레임워크 첫걸음, 후루네스 키노시타 마사아키