pom.xml 파일로 들어갑니다.
<properties>
<!-- tiles -->
<org.apache.tiles-version>3.0.8</org.apache.tiles-version>
</properties>
저는 3.0.8 버전을 사용하기 때문에 pom.xml 에 라이브러리를 추가해줍니다.
저는 간단하게 header.jsp footer.jsp main.jsp 를 만들어 구성하겠습니다.
webapp/WEB-INF/spring 안에 tiles-defs.xml 파일을 생성해줍니다.
저는 상단 header과 하단 footer 그리고 메인페이지로 이루어져있는 타일즈 설정을 할 것 입니다.
가장 먼저 기본에 될 layout.jsp를 설정하고 그 밑으로 header, body, footer 를 설정합니다.
그리고 .* 를 통해 body의 페이지를 자연스럽게 바꿀 수 있도록 설정합니다.
body에 올 페이지가 실질적인 페이지인 셈 입니다.
그 다음으로 servlet-context.xml 에서 타일즈 설정을 해줄겁니다.
<!-- 타일즈 환경 설정 -->
<beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<beans:property name="definitions">
<beans:list>
<beans:value>/WEB-INF/spring/tiles-defs.xml</beans:value>
</beans:list>
</beans:property>
</beans:bean>
<!-- 타일즈 뷰 -->
<beans:bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<beans:property name="order" value="1" />
<beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
<beans:property name="viewNames" value=".*" />
</beans:bean>
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="order" value="2" />
<beans:property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
타일즈 뷰 에 쓰인건 뷰 리졸버라고 하며, 뷰 리졸버는 사용자에게 결과를 랜더링하여 보여주기 위해 사용 됩니다.
UrlBasedViewResolver
InternalResourceViewResolver
order = 1 을 주어 우선순위가 타일즈가 되게끔 설정해줍니다.
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
loyout.jsp 를 설정해줍니다!
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<div>
<div>
book 홈 화면 입니다.
</div>
</div>
main.jsp 입니다
이런식으로 header, footer 전부 설정해줍니다.
비록 디자인적인 부분을 신경쓰지 못했지만 정상적으로 타일즈 설정이 완료되었다는걸 볼 수 있습니다.
이렇게 스프링 타일즈 설정이 완료 되었습니다!
차근차근 설정하여 프로젝트를 진행해보려고 합니다.