티스토리 뷰
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
- JavaScript Core
- 정규표현식
- backend개발환경
- go-core
- java
- Spring
- DesignPattern
- EffectiveJava
- Kotlin
- db
- Design Pattern
- Git
- clean code
- JPA
- frontend개발환경
- toby
- generics
- frontcode
- OOP
- http
- TEST
- spring cloud
- servlet
- code
- MySQL
- programming
- javascript
- java8
- Jackson
- mariadb
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |