[사용예]
> jsp 자원을 재사용하게 도와주는 기술로
주로 공통적으로 사용하는 Header, Footer, Menu(Navigation) 등을 세팅한다.
> 아래와 같이 설정해두면, 어떤 페이지를 호출하던 아래 세팅한 내용들은 기본적으로 세팅되어 호출된다.
1. Pom.xml 추가
> Step 1) properties 내에 다음과 같은 소스를 추가
<org.apache.tiles-version>3.0.5</org.apache.tiles-version>
> Step 2) dependency 추가
<!-- Tiles -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-extras</artifactId>
<version>${org.apache.tiles-version}</version>
</dependency>
Library 추가.
2. Servlet.xml 추가
Step 1) 아래와 같이 Bean을 추가한다.
<!-- Tiles -->
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles.xml</value>
</list>
</property>
<!-- <property name="preparerFactoryClass" value="org.springframework.web.servlet.view.tiles3.SpringBeanPreparerFactory" /> -->
</bean>
Step 2) 기존 viewer는 order를 2로 변경한다.
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/jsp/ directory -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="2">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
Servlet에 추가할 Bean은 크게 ViewResolver와 Configurer로서
ViewResolver는 페이지 호출 시 실행되어 페이지를 연결하는 역할을 하고
Configurer는 참조할 tiles 세팅을 지정한다.
Step2에서 기존 Viewer의 오더 순서를 바꿔준다. 필요에 따라 소스 자체를 없애도 상관없다.
3. layout HTML / JSP 추가
Step 1) /WEB-INF 아래에 views 또는 jsp 폴더 아래에 다음과 같은 jsp 또는 html 파일을 생성한다.
template.jsp에서 굵은 글씨를 주요로 보자.
> common-body.jsp
공통 바디 영역
> footer.jsp
푸터 영역
> header.jsp
<!-- 각종 스크립트 및 CSS -->
> template.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<!-- 각종 스크립트 및 CSS -->
<script type="text/javascript">
$(document).ready(function(){
});
</script>
</head>
<body>
<br>
<br>
<br>
<!-- Body
================================================== -->
<div id=common-body >
<tiles:insertAttribute name="common-body"/>
</div>
<div id="body">
<tiles:insertAttribute name="body"/>
</div>
<div id="footer">
<tiles:insertAttribute name="footer"/>
</div>
<!-- Body
================================================== -->
</body>
</html>
4. tiles.xml 추가
Step 1) tiles.xml 을 /WEB-INF 밑에 생성한다.
Step 2) tiles.xml에 아래와 같은 소스를 생성한다.
<?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="default" template="/WEB-INF/jsp/layout/template.jsp">
<put-attribute name="header" value="/WEB-INF/jsp/layout/header.jsp"/>
<put-attribute name="common-body" value="/WEB-INF/jsp/layout/common-body.jsp"/>
<put-attribute name="body" />
<put-attribute name="footer" value="/WEB-INF/jsp/layout/footer.jsp"/>
</definition>
<definition name="*/*/*" extends="default">
<put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp"/>
</definition>
</tiles-definitions>
tiles.xml은 tiles로서 사용할 html과 jsp를 미리 세팅하는 역할이다.
따라서, definition 태그안에 JSP/html 자원은 각자 필요에 따라 변경하면 된다.
위와 같이 세팅하고, 페이지를 호출했을 때 페이지가 제대로 로딩되면 성공.
'Java & Spring > Spring' 카테고리의 다른 글
이클립스 WAR 묶어서 올리는 방법 (0) | 2016.04.01 |
---|---|
[Spring] Text 다운로드 처리 (0) | 2016.02.12 |
[Spring] 프로시저 호출 (0) | 2015.09.14 |
Maven Mssql Repository 추가 및 Dependency 추가 (0) | 2014.08.20 |
컨트롤러 메소드 파라미터와 타입 (0) | 2014.03.19 |
WRITTEN BY