[Spring] 타일즈(Tiles)

이수보🧑🏻‍💻·2022년 2월 21일
0

SPRING

목록 보기
1/2

Spring - Apache타일즈(Tiles)

  • 타일즈(Tiles)란?

    • 반복되는 부분들을 한 곳에서 관리할 수 있게 도와주는 템플릿 프레임워크이다.

    • 웹페이지에서 흔히 보는 상단, 하단 메뉴 뿐만 아니라 측면과 메인부분을 작성

    • 우리가 아는 JSP Include와 비슷하지만, Tiles는 레이아웃 템플릿 엔진으로 레이아웃을 구성하는데 좀 더 세분화되고 관리하기 쉬워 유지보수에 용이하다.

    • tiles에는 상속 기능이 있기때문에, 기존의 값을 참조하여 그대로 쓸 수 있다.

    • 2021.03.02 기준으로 3.0.8버전까지 나왔으며 더 이상 지원하지 않는다.

  • 타일즈(Tiles) 3.0.8 최소 요구 사항
    • JSTL 필수
    • JDK 1.7 이상
    • Servlet 2.5 이상( 2.4도 작동할 수 있음)
    • JSP 2.1이상( 2.0도 작동할 수 있음)
    • Spring 3.2이상

  • 개발환경
    • OS : WINDOWS 10 64bit
    • 개발도구 : sts4 for Eclipse
    • DBMS : Oracle 11g
    • JDK : JAVA JDK 1.8
    • 웹서버 : apache-tomcat 8.5.59
    • SPRING VERSION : 5.2.9.RELEASE

다운로드

1-1. https://mvnrepository.com/artifact/org.apache.tiles/tiles-servlet 접속 3.0.8 -> maven -> 복사

1-2. https://mvnrepository.com/artifact/org.apache.tiles/tiles-extras 접속 3.0.8 -> maven -> 복사

1-3. https://mvnrepository.com/artifact/org.apache.tiles/tiles-jsp 접속 3.0.8 -> maven -> 복사

2-1. Tiles를 적용하기 위해 pom.xml에 dependency 추가

<!-- Tiles -->
<dependency>
 	<groupId>org.apache.tiles</groupId>
 	<artifactId>tiles-extras</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-jsp</artifactId>
 	<version>3.0.8</version>
</dependency>

2-2. servlet-context.xml에 Tiles 설정 추가

<!-- order란 파라미터를 통해 tiles 작동 후 ViewResolver가 작동한다. --><!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<beans:property name="prefix" value="/WEB-INF/views/" />
	<beans:property name="suffix" value=".jsp" />
	<beans:property name="order" value="2" />   요청 -> 응답 -> 바로 View로 가던 기존과    다르게 Tiles를 거쳐 가기 때문에 order를 2 순위로 미루고 tiles 설정에서 1로 설정해줌
</beans:bean><!-- 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></beans:beans>

3. tiles-config생성

<?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 설정 -->
<tiles-definitions>
<!-- main layout -->
<definition name="tiles-layout" template="/WEB-INF/views/tiles/index.jsp">
<put-attribute name="header" value="/WEB-INF/views/tiles/header.jsp" />
<put-attribute name="aside" value="/WEB-INF/views/tiles/aside.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/views/tiles/footer.jsp" />
</definition><definition name="*/*" extends="tiles-layout">
<!-- name에서 볼 수 있듯이 */*는 아래 body의 value에서 1,2에 해당하며controller에서 1,2를 설정한다. -->
<put-attribute name="body" value="/WEB-INF/views/{1}/{2}.jsp" />
<put-attribute name="title" value="tiles" />
</definition>
<definition name="*.tiles" extends="tiles-layout">
<!-- name에서 볼 수 있듯이 */*는 아래 body의 value에서 1,2에 해당하며controller에서 1,2를 설정한다. -->
<put-attribute name="body" value="/WEB-INF/views/{1}.jsp" />
<put-attribute name="title" value="tiles" />
</definition>
</tiles-definitions> 

4. tiles-config에 맞게 파일 생성

tiles 설정 끝~

0개의 댓글