본문 바로가기
Spring

Spring 4 자바 기반 Thymeleaf 설정

by 수앙 2016. 10. 16.

Spring 4.3.3 기준 Thymeleaf 3.0.2 설정

 

1. 메이븐 Thymeleaf 의존성 라이브러리 추가

<dependency>
	<groupId>org.thymeleaf</groupId>
	<artifactId>thymeleaf-spring4</artifactId>
	<version>3.0.2.RELEASE</version>
</dependency>

 

2. 스프링에 Thymeleaf 빈 설정

@Autowired
private ApplicationContext applicationContext;

@Bean
public SpringResourceTemplateResolver templateResolver(){
	SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
	templateResolver.setApplicationContext(this.applicationContext);
	templateResolver.setPrefix("/WEB-INF/templates/"); // HTML 파일 위치
	templateResolver.setSuffix(".html"); // HTML 확장명 사용
	templateResolver.setTemplateMode(TemplateMode.HTML); // HTML5 값은 비권장 됨
	templateResolver.setCacheable(false); // 캐시 사용 안함(사용하면 html 수정시 서버 재기동 필요)
	return templateResolver;
}

@Bean
public SpringTemplateEngine templateEngine(){
	SpringTemplateEngine templateEngine = new SpringTemplateEngine();
	templateEngine.setTemplateResolver(templateResolver());
	templateEngine.setEnableSpringELCompiler(true); // Spring EL 사용
	return templateEngine;
}

@Bean
public ThymeleafViewResolver viewResolver(){
	ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
	viewResolver.setCharacterEncoding("UTF-8"); // 한글 깨짐 방지
	viewResolver.setTemplateEngine(templateEngine());
	return viewResolver;
}

Thymeleaf 설정은 위가 전부다.

 

3. 컨트롤러 작성

@Controller
public class HomeController {

	@RequestMapping(value = "/home", method = RequestMethod.GET)
		public String home(Model model) {
		model.addAttribute("list", ImmutableList.of("aaa", "bbb"));
		model.addAttribute("name", "World");
		return "home/home";
	}

}

 

4. HTML 작성

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
</head>
<body>
	<h2>Thymeleaf</h2>
	<div>
		<h2 th:text="'Hello ' + ${name} + '!'"></h2>
		<table border="1">
			<thead>
				<tr>
					<th>값</th>
				</tr>
			</thead>
			<tbody>
				<tr th:each="data : ${list}">
					<td th:text="${data}"></td>
				</tr>
			</tbody>
		</table>
	</div>
</body>
</html>

Thymeleaf 설정은 다른 템플릿(Velocity, Freemarker 등)과 같이 간단하다.

이제 사용법을 익히면 된다.

 

끝.

'Spring' 카테고리의 다른 글

Spring REST Docs 사용법  (0) 2017.04.23
Spring ehcache 설정  (0) 2016.12.12
Spring 4.3.2 log4jdbc-log4j2 설정 방법  (1) 2016.09.29
Springfox 설정  (0) 2016.09.25
Spring 4.3.2 자바 annotation 기반 설정  (0) 2016.09.21

댓글