티스토리 뷰

Java

tiles3 설정

LichKing 2016. 2. 18. 15:49

Spring4, Maven 기준.


pom.xml 에 의존성 추가


<!-- Tiles -->

<dependency>

<groupId>org.apache.tiles</groupId>

<artifactId>tiles-jsp</artifactId>

<version>3.0.5</version>

</dependency>

<dependency>

<groupId>org.apache.tiles</groupId>

<artifactId>tiles-core</artifactId>

<version>3.0.5</version>

</dependency>



스프링 빈 설정파일에 view resolever 수정(servlet-context.xml)


<!-- Tiles 설정 -->

<beans:bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">

<beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />

<beans:property name="order" value="1" />

</beans:bean>


<beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">

<beans:property name="definitions">

<beans:list>

<beans:value>/WEB-INF/views/layout/tiles-layout.xml</beans:value>

</beans:list>

</beans:property>

</beans:bean>



위 설정에서 짐작했겠지만 tiles-layout.xml 추가


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE tiles-definitions PUBLIC 

"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" 

"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">


<tiles-definitions>

<definition name="default" 

template="/WEB-INF/views/layout/default/default-layout.jsp">

<put-attribute name="header"

value="/WEB-INF/views/layout/default/header.jsp"/>

<put-attribute name="left"

value="/WEB-INF/views/layout/default/left.jsp"/>

<put-attribute name="right"

value="/WEB-INF/views/layout/default/right.jsp"/>

<put-attribute name="footer"                             

value="/WEB-INF/views/layout/default/footer.jsp"/>

</definition>

<definition name="*" extends="default">

<put-attribute name="right" value="/WEB-INF/views/{1}.jsp"/>

</definition>

</tiles-definitions>


설명을 하자면 default 로 설정되어있는 default-layout.jsp가 기본 틀이며 해당 jsp 내에 header, left, right, footer를 추가하는 형태다. 기본 default를 설정한 다음에 아래 definition 태그를 이용하여 default 를 확장(extend)해 사용하게되는데 name 부분에 url이 오고 {1}부분에 viewresolver에서 리턴받은 파라미터가 들어가게된다. 만약 설정을 잘 했는데도 불구하고 500에러, "could not resolve view with name ~" 에러가 발생하면 해당 url설정이 제대로 됐는지 확인을 해보자.


xml설정은 완료됐고 default-layout.jsp 는 이런식으로 설정하면 된다.


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

</head>

<body>

<tiles:insertAttribute name="header"/>

<tiles:insertAttribute name="left"/>

<tiles:insertAttribute name="right"/>

<tiles:insertAttribute name="footer"/>

</body>

</html>


해당 부분에 페이지가 들어가게되는것이므로 css 등을 통해 각각 구역을 나눠주면 된다.

'Java' 카테고리의 다른 글

DesignPattern#01 Strategy Pattern  (0) 2016.03.01
MVC 구조에서 service와 serviceImpl  (38) 2016.02.27
tiles3 설정  (0) 2016.02.18
String Class와 equals()  (0) 2015.12.02
call by value, call by reference  (0) 2015.11.25
현재시간구하기  (0) 2015.06.06
댓글
댓글쓰기 폼