이 글은
https://dzzienki.tistory.com/66
이 포스팅의 마지막 부분에서 이어집니다.
tiles 라는 것은 말 그대로 화면을 조각들로 분할하여 사용할 수 있도록 도와주는 프레임워크 입니다.
예를들어 인터넷 카페나 블로그 등을 생각 해 보시면
화면이 상단메뉴, 좌측 혹은 우측 메뉴, 콘텐츠 부분, 하단메뉴
이렇게 나누어져 있는 것을 보신 적이 있으실 겁니다.
그걸 각각의 jsp 로 나누어 관리하기 편하도록 도와주는 툴이 바로 tiles 입니다.
타일즈를 사용하기 위해선 우선 pom.xml 에 다음 dependency 를 추가해주셔야 합니다.
코드는 아래쪽의 것을 복사하시면 되구요
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 |
<!-- tiles --> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-jsp</artifactId> <version>3.0.8</version> </dependency>
<dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-servlet</artifactId> <version>3.0.8</version> </dependency>
<dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-extras</artifactId> <version>3.0.8</version> </dependency> <!-- /tiles -->
<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> |
cs |
그 다음으로는
src/main/resources/spring/servlet-context.xml 에
아래의 내용을 추가해주셔야 합니다.
코드는 아래의 것을 복사하시면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<!-- Tiles --> <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> <beans:bean id="tilesViewResolver" 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> <!-- /Tiles --> |
cs |
다음은 tiles 의 설정 파일을 만들어 주어야 합니다.
위의 <beans:value>/WEB-INF/tiles/tiles.xml</beans:value>
이부분에 보시면 WEB-INF아래에 tiles라는 폴더 아래에 tiles.xml
이라는 파일 안에 설정파일을 넣어주겠다 라는 뜻이니
저 경로에 정확하게 파일을 tiles.xml 이라는 파일을 만들어 주시고
아래와 같이 작성을 해 줍니다.
코드 내용은 아래 코드를 복사하시면 됩니다.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<?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="base" template="/WEB-INF/tiles/template.jsp"> <put-attribute name="left" value="/WEB-INF/tiles/left.jsp" /> <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" /> <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" /> </definition>
<definition name="*.page" extends="base"> <put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp" /> </definition>
<definition name="*/*.page" extends="base"> <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" /> </definition>
<definition name="*/*/*.page" extends="base"> <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" /> </definition>
<!-- 메뉴 미표시 --> <definition name="baseEmpty" template="/WEB-INF/jsp/templateEmpty.jsp"> </definition>
<definition name="*.part" extends="baseEmpty"> <put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp" /> </definition>
<definition name="*/*.part" extends="baseEmpty"> <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" /> </definition>
<definition name="*/*/*.part" extends="baseEmpty"> <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" /> </definition>
</tiles-definitions> |
cs |
위의 tiles.xml 에 작성한
template="/WEB-INF/tiles/template.jsp"
attribute name="left" value="/WEB-INF/tiles/left.jsp"
attribute name="header" value="/WEB-INF/tiles/header.jsp"
attribute name="footer" value="/WEB-INF/tiles/footer.jsp"
이부분을 보시면 템플릿 파일은 WEB-INF/tiles/폴더 아래에 template.jsp 에,
left, header, footer 파일은 각각 WEB-INF/tiles/ 폴더 아래에
left.jsp, header.jsp, footer.jsp
에 설정해 두겠다고 명시해 두었습니다.
그러니 파일 구조를 보시면
위와 같은 파일 구조가 되도록 각각의 파일들을 생성해 주시면 됩니다.
그리고 template.jsp 에는 아래와 같이
코드는
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %> <!DOCTYPE html>
<html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> <style> #header{ width:100%; height:50px; text-align: center; line-height: 50px; background-color: #61868e; } #left{ float:left; width:15%; text-align: center; background-color: #d78b7d; } #main{ float:left; width:85%; background-color: #f9f3e3; } #footer{ width: 100%; height: 50px; text-align: center; background-color: #cfc8b5; clear:both; } #left, #main{ min-height: 700px; } </style> </head> <body> <div style="width:100%; height:100%;"> <div id="header"><tiles:insertAttribute name="header" /></div> <div id="left"><tiles:insertAttribute name="left" /></div> <div id="main"><tiles:insertAttribute name="body" /></div> <div id="footer"><tiles:insertAttribute name="footer" /></div> </div>
</body> </html> |
cs
|
그리고 header.jsp, left.jsp, footer.jsp 에는 각각 아래와 같이 만들어 주시면 됩니다.
아래의 코드의 div 안의 내용만 바꾸시면 될 것 같습니다.
1 2 3 4 |
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <div>왼쪽 메뉴</div> |
cs |
그럼 이제 tiles 를 사용하기 위한 기본적인 설정 파일들은 다 만들고 설정을 마친 것입니다.
물론 세세한 설정들은 손을 봐야겠지만 큰 틀을 잡고 가는데에는 문제가 없습니다.
그럼 이제 tiles를 테스트 해 보기 위해
mainController.java 에
아래와 같이 추가해줍니다.
코드는
1 2 3 4 5 6 7 8 |
/** * Tiles 사용 */ @RequestMapping(value="/testTiles.do") public String testPage() { System.out.println("tiles Test!"); return "main/tilesTest.page"; } |
cs |
위에 있구요
보통 타일즈를 사용할 때 상단메뉴 왼쪽 메뉴 아래쪽 메뉴를 고정시켜놓고 content 부분인 내용만 바꿔가며 사용하는 경우가 많습니다. 그 content 는 위의 return 에 명시한 대로
WEB-INF/jsp 폴더의 main폴더 아래에 tilesTest.jsp 를 만들고
아래와 같이 코드를 작성해줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 |
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> 타일즈 테스트 </body> </html> |
cs |
그리고 나서 서버를 실행시킨 뒤
http://localhost:8080//testTiles.do 에 접속해 보시면
위와 같이 각각의 tiles 들이 정해놓은 위치에 생성되어 있는 것을 보실 수 있습니다.
여기까지가 tiles 기본 설정 방법이었습니다.
'개발 > 웹개발 기본가이드' 카테고리의 다른 글
자바스크립트 object key 값 동적으로 할당하기 (0) | 2021.04.19 |
---|---|
제이쿼리 노드 찾기 (0) | 2020.09.05 |
Jquery Datatable tr 전체에 클릭 이벤트 추가 (0) | 2020.07.28 |
Eclipse Dynamic Web Project로 Spring Maven 프로젝트 만들기 (8) | 2020.02.26 |
STS (Spring Tool suite 4) 와 egovframework 사용하기 (0) | 2019.12.24 |