티스토리 뷰
안녕하세요. 오늘의 포스팅은 화면 템플릿에 대해서 포스팅해보려고 합니다.
화면 템플릿의 종류에는 여러가지가 있습니다만, 대표적으로 JSP, FreeMarker, Velocity, Thymeleaf 등이 많이 쓰인다고 합니다.
저 또한, JSP, FreeMarker 및 Thymeleaf를 접해봤는데, 그 중 오늘은 타임리프(Thymeleaf)의 설정 방법에 대해서 진행해보겠습니다.
타임리프 3 버전도 나왔지만 저는 이번 포스팅에서 타임리프 2.1.4 버전을 사용하도록 하겠습니다.
먼저 스프링 프로젝트에서 pom.xml의 파일을 열고, 다음의 코드를 추가해주면 됩니다.
<!-- Template Engine -->
<dependency>
<groupid>org.thymeleaf</groupid>
<artifactid>thymeleaf</artifactid>
<version>2.1.4.RELEASE</version>
</dependency>
<dependency>
<groupid>org.thymeleaf</groupid>
<artifactid>thymeleaf-spring4</artifactid>
<version>2.1.4.RELEASE</version>
</dependency>
<dependency>
<groupid>nz.net.ultraq.thymeleaf</groupid>
<artifactid>thymeleaf-layout-dialect</artifactid>
<version>1.3.1</version>
</dependency>
그런 다음, webapp/WEB-INF/spring/appServlet/servlet-context.xml을 수정합니다.
기존의 JSP 뷰 리졸버(ViewResolver)인 아래의 내용을 삭제하고,
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/">
<beans:property name="suffix" value=".jsp">
</beans:property></beans:property></beans:bean>
다음과 같이 타임리프 뷰 리졸버(ViewResolver)를 추가해줍니다.
<!-- thymeleaf View 설정 -->
<beans:bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
<beans:property name="prefix" value="/WEB-INF/views/">
<beans:property name="suffix" value=".html">
<beans:property name="templateMode" value="HTML5">
<beans:property name="characterEncoding" value="UTF-8">
<beans:property name="cacheable" value="false">
</beans:property></beans:property></beans:property></beans:property></beans:property></beans:bean>
<!-- thymeleaf laytout을 쓰기위해 3rd Party 추가 -->
<beans:bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
<beans:property name="templateResolver" ref="templateResolver">
<beans:property name="additionalDialects">
<beans:set>
<beans:bean class="nz.net.ultraq.thymeleaf.LayoutDialect">
</beans:bean></beans:set>
</beans:property>
</beans:property></beans:bean>
<!-- thymeleaf laytout ViewResolver 설정 -->
<beans:bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
<beans:property name="templateEngine" ref="templateEngine">
<beans:property name="characterEncoding" value="UTF-8">
<beans:property name="order" value="1">
</beans:property></beans:property></beans:property></beans:bean>

그리고 기존에 있는 home.jsp는 삭제하셔도 되고, home.html을 다음과 같이 만들어줍니다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Insert title here</title>
</head>
<body>
Hello World..!!
<br/>
<th:block th:text="${serverTime}"></th:block>
</body>
</html>
잘 연동이 되었는지 테스트를 하기 위해서 localhost:8080/example을 요청해봅니다. 잘 연동이 되었으면 다음과 같은 화면이 출력됩니다.

타임리프를 사용할 때 한가지 주의할 점은 Thymeleaf는 태그 유효성 체크가 매우 엄격하다고 합니다. 따라서, 사용하실 때 반드시
닫는 태그를 달아주도록 합니다.
오늘은 여러가지 뷰 템플릿 중에서 타임리프 설정에 대해서 알아보았습니다. 다른 템플릿도 좀 더 사용해보고 포스팅할 수 있도록 하겠습니다.
이만, 포스팅을 마치겠습니다 :)
- Total
- Today
- Yesterday