티스토리 뷰

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  (41) 2016.02.27
String Class와 equals()  (0) 2015.12.02
call by value, call by reference  (0) 2015.11.25
현재시간구하기  (0) 2015.06.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함