본 포스팅은 STS로부터 생성된 Spring MVC 를 기반으로 한다.
개요 |
레이아웃 프레임워크로 많이 사용하는 tiles 를 spring MVC 와 연동하는 것을 순서대로 적어본다.
pom.xml |
pom.xml 파일에 tiles 설정과 관련한 라이브러리를 선언한다. 참고로 2012-07-11 에 Version: 3.0.1 이 릴리즈 되었다. 하지만 이 포스팅에서는 2.2.2 를 사용해보도록 한다.
<properties>
<java-version>1.6</java-version>
<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
<org.apache.tiles-version>2.2.2</org.apache.tiles-version>
</properties>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-extras</artifactId>
<version>${org.apache.tiles-version}</version>
</dependency>
servlet-context.xml |
기존의 InternalResourceViewResolver 대신 TilesViewResolver 를 등록한다. tiles 과 관련된 설정은 tiles-defs.xml 에 설정하기로 한다.
<beans:bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
spring MVC project 로 설정한 InternalResourceViewResolver 이다. 이부분을 아래와 같이 바꿔준다.
<beans:bean id="tilesViewResolver"
class="org.springframework.web.servlet.view.tiles2.TilesViewResolver" />
<beans:bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<beans:property name="definitions" value="/WEB-INF/tiles-defs.xml" />
</beans:bean>
tiles-defs.xml |
Tiles 와 관련된 설정을 포함하는 파일이다. home 라는 view 요청시 .main 이라는 이름으로 정의된 템플릿의 main 부분에 home.jsp 로 대체한다는 내용이다.
경우에 따라서 wildcard 형식을 이용할 수 있다. 2.x 에서의 wildcard 지원으로 일종의 URL Pattern 형태를 취할 수 있는 장점이 생겼다.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
"http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
<definition name=".main" template="/WEB-INF/views/layouts/layout.jsp">
<put-attribute name="header" value="/WEB-INF/views/layouts/header.jsp" />
<put-attribute name="main" value="/WEB-INF/views/layouts/main.jsp" />
<put-attribute name="footer" value="/WEB-INF/views/layouts/footer.jsp" />
</definition>
<definition name="home" extends=".main">
<put-attribute name="main" value="/WEB-INF/views/home.jsp" />
</definition>
</tiles-definitions>
template 파일 생성 |
layout.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<html>
<head>
<title>Home</title>
</head>
<body>
<tiles:insertAttribute name="header"/>
<tiles:insertAttribute name="main"/>
<tiles:insertAttribute name="footer"/>
</body>
</html>
예제 |
참고 |
Tiles Home : http://tiles.apache.org/
'Tip > Spring' 카테고리의 다른 글
[Thymeleaf] Thymol Static Imports (0) | 2013.08.19 |
---|---|
Thymeleaf Extras (0) | 2013.08.14 |
스프링(spring) + 타임리프(thymeleaf) 연동시 한글처리 (0) | 2013.08.06 |
[타임리프] From JSP to Thymeleaf (0) | 2013.07.30 |
[Maven] thymeleaf-extras-springsecurity3-2.0.0 다운로드 실패 (0) | 2013.07.29 |