-
Tiles는 웹화면을 템플릿으로 구성시켜주는 framework다.
xml설정파일에 설정을 해줘야한다.상속 기능을 가지고 이기때문에 바뀌지 않는 부분은 계속해서 상속을 받고 변경되는 부분만 변경시켜주면 되어서 편리하다.
일단 전체파일트리는 이렇고....
root-context.xml설정
<!-- tiles3 -->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.tiles3.TilesView" />
<property name="order" value="2" />
</bean>servlet-context.xml 설정
<!-- tiles -->
<beans:bean id="tilesviewResolber"
class="org.springframework.web.servlet.view.tiles3.TilesViewResolver" />
<beans:bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<beans:property name="definitions">
<beans:list>
<beans:value>/WEB-INF/tiles/tiles.xml</beans:value> #여기에 타일즈 설정파일이 있숩니다~ 하고 알려주는것
</beans:list>
</beans:property>
</beans:bean>기본적인 사용방법먼저 알아보자면!!
tile.xml 설정
부모의 레이아웃 설정태그
<definition name=".parent" template=".jsp경로">
<put-attribute name="head" value="head.jsp경로"/>
<put-attribute name="body" value="body.jsp경로"/>
</definition>
자식 레이아웃 설정태그
<definition name="/parent" extends=".parent">
<put-attribute name="head" value="head.jsp경로"/>#생략해도된다. 선언하지않으면 그냥 부모의 레이아웃이 출력되기때문에
<put-attribute name="head" value="/{1}.jsp"/> #request로 온 url을 넣을 수 있다. wildcard라고한다.
</definition>
wildcard쓰려면 pom.xml에 jstl을 추가해줘야한다.
jstl은 jsp 표준 라이브러리의 약어로 자주 사용될 수 있는 커스텀 태그들을 모아서 표준으로 모아놓은 태그라이브러리이다!
나중에 더 자세하게 알아보자
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version></dependency>
이렇게 xml설정이 완료되었으면 부모인 layout.jsp에다가 위에서 지정한 이름으로 name을 지정해주면 아주 잘 된다.
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
#이친구를 입력해주자 안했더니 난 자꾸 insertAttribute가 unknow tag라고 경고를 뱉어주었다
<html>
<head>
<tiles:insertAttribute name="head"/>
</head>
<body>
<tiles:insertAttribute name="body"/>
</body>
</html>
예압 이제 실제로 사용해보자 ^0^/
footer,header,menu등 부모 jsp에는 아무것도 안 넣고 그냥 글자만 넣어서 따로 사진을 표기하지 않았다.
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="layout" template="/WEB-INF/tiles/layout/layout.jsp">
<put-attribute name="header" value="/WEB-INF/tiles/tile/header.jsp"/>
<put-attribute name="footer" value="/WEB-INF/tiles/tile/footer.jsp"/>
<put-attribute name="menu" value="/WEB-INF/tiles/tile/menu.jsp"/>
</definition>
<definition name="*/*" extends="layout">
<put-attribute name="content" value="/WEB-INF/views/{1}/{2}.jsp"/>
</definition>
</tiles-definitions>layout.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
<tr>
<td colspan="2"><tiles:insertAttribute name="header" /></td>
</tr>
<tr>
<td><tiles:insertAttribute name="menu" /></td>
<td><tiles:insertAttribute name="content" /></td>
</tr>
<tr>
<td colspan="2"><tiles:insertAttribute name="footer" /></td>
</tr>
</table>
</body>
</html>실행화면
사진에서 보이듯이 상속받는 부분은 가만히 있고 content로 지정한 부분만 바뀌는걸 볼 수 있다.
만약에 페이지를 못찾는다면?! 혹시 컨트롤러를 손안댔는지 확인해보자. 리턴값을 바꿔주어야한다 main폴더에 넣었으니깐!
'2017년 > Spring' 카테고리의 다른 글
스프링 퀵 스타트 2일차 (0) 2017.10.11 스프링 퀵 스타트 1일차 (0) 2017.09.27 spring xml파일 설정 (2) 2017.09.21 spring으로 화면에 HelloWorld를 띄어보자 (0) 2017.09.21 의존성 추가 페이지 링크 (0) 2017.09.19