Spring tiles는
뷰단의 탑,사이드메뉴,하단,메인 등을 페이지 include 방식으로 나누는
기존구조를 쉽게 적용하기 위한 템플릿 프레임워크입니다
장점은 include 디자인을 변경하면 페이지를 전체적으로 수정해야하는 번거로움을 없애고
일관적인 페이지 관리를 가능하도록합니다
작업 순서 (전자정부프레임워크기준)
- pom.xml 에 tiles 관련 dependency 추가
===========================================
<!-- Tiles Core -->
<!-- http://mvnrepository.com/artifact/org.apache.tiles/tiles-core -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>${org.apache.tiles-version}</version>
</dependency>
<!-- Tiles Servlet -->
<!-- http://mvnrepository.com/artifact/org.apache.tiles/tiles-servlet -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>${org.apache.tiles-version}</version>
</dependency>
<!-- Tiles JSP -->
<!-- http://mvnrepository.com/artifact/org.apache.tiles/tiles-jsp -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>${org.apache.tiles-version}</version>
</dependency>
===========================================
- dispatcher-servlet.xml 파일에 타일즈 View Resolver 를 추가
===========================================
<!-- 일반 viewResolver -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
<property name="order" value="1" />
</bean>
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order" value="2" />
</bean>
<!-- Tiles 설정 파일 -->
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles/tiles.xml</value>
</list>
</property>
</bean>
===========================================
- tiles 관련 설정 xml 추가
===========================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
<definition name="common_head_tiles">
<put-attribute name="common_head" value="/WEB-INF/jsp/include/common_head.jsp"/>
</definition>
<definition name="common_user_head_tiles">
<put-attribute name="common_user_head" value="/WEB-INF/jsp/include/common_user_head.jsp"/>
</definition>
<definition name="kws-tiles" template="/WEB-INF/jsp/layout/tmx_layout.jsp" extends="common_head_tiles">
<put-attribute name="north" value="/WEB-INF/jsp/frame/kws/north.jsp" />
<put-attribute name="nav" value="/WEB-INF/jsp/frame/kws/nav.jsp" />
<put-attribute name="kws_content" value="" />
<put-attribute name="south" value="/WEB-INF/jsp/frame/kws/south.jsp" />
</definition>
===========================================
- 기본 레이아웃 jsp 추가
<definition name="login/*.do" extends="kws-no-tiles" >
<put-attribute name="kws_content" value="/WEB-INF/jsp/kws/login/{1}.jsp" />
</definition>
<definition name="*/*Ajax.do" extends="kws-empty-tiles" >
<put-attribute name="kws_content" value="" />
</definition>
<!-- 팝업 타일 -->
<definition name="*/*Popup.do" extends="kws-popup-tiles">
<put-attribute name="kws_content" value="/WEB-INF/jsp/kws/{1}/{2}Popup.jsp" />
</definition>
<definition name="*/*.do" extends="kws-tiles">
<put-attribute name="kws_content" value="/WEB-INF/jsp/kws/{1}/{2}.jsp" />
</definition>
<!-- egov 공통 컴포넌트 타일 -->
<definition name="egovframework/*" extends="kws-tiles">
<put-attribute name="tmx_content" value="/WEB-INF/jsp/egovframework/{1}.jsp" />
</definition>
===========================================
입니다.










덧글