[Spring] 스프링 tiles 사용하기!

2021.10.17 21:41

졸리운_곰 조회 수:26

[Spring] 스프링 tiles 사용하기!

안녕하세요~

오늘은 스프링 프레임워크에서 tiles 설정을 해보겠습니다~

 

tiles 란?

 

- 웹 페이지의 상단, 하단, Header, Footer, left 등 반복적으로 사용되는 부분들에 대한 정보를 모아서 관리

- 반복되는 부분을 설정파일로 한 번만 설정하고 수정시 설정 파일의 일부만 변경해도 모든 tiles 페이지가 적용.

 

tiles 설정하기

우선적으로 제가 사용한 설정 정보입니다.

 

스프링 프레임워크:4.2.3.RELEASE

tiles: 3.0.5

서버:  Tomcat v8.0 Server 

 

 

1. pom.xml에 tiles 선언

        <!-- Tiles 를 위한 설정 -->
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-extras</artifactId>
            <version>3.0.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-servlet</artifactId>
            <version>3.0.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-jsp</artifactId>
            <version>3.0.5</version>
        </dependency>

위와 같이 pom.xml에 tiles를 선언합니다.

 

 

 

2. servlet-context에 tiles 선언

 

서블릿 선언과 관련된 곳에 tiles 선언을 합니다. 저같은 경우는 servlet-context 에 선언을 했습니다.

 

 <!-- tiles 선언 -->
    <beans:bean id="urlBasedViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
        <beans:property name="order" value="0" /> <!-- 서블릿 호출 순서 -->
    </beans:bean>
    <beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
        <beans:property name="definitions">
            <beans:list>
                <beans:value>/WEB-INF/spring/appServlet/tiles.xml</beans:value>
            </beans:list>
        </beans:property>
    </beans:bean>

 

3. tiles.xml 파일 생성

아래 사진과 같이 /WEB_INF/spring/appServlet 에 tiles.xml 파일을 생성합니다.

 

 

 

4. tiles 관련 jsp파일 생성

생성한 이후 /WEB_INF/views 에 tiles 폴더를 생성하고 아래와 같이 jsp 파일을 만들어 줍니다.

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

css  script는 아래와 같이 본인이 사용하시는 css와 script 선언을 넣어주세요

 

 

그리고 header, footer, left는 본인이 사용하시는 소스를 그대로 넣어주시면 됩니다.

 

5. tiles.xml 소스코드 작성

  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="default_main" templateExpression="/WEB-INF/views/tiles/layout.jsp">
        <put-attribute name="css" expression="/WEB-INF/views/tiles/css.jsp" />
        <put-attribute name="script" expression="/WEB-INF/views/tiles/script.jsp" />
        <put-attribute name="header" expression="/WEB-INF/views/tiles/header.jsp" />
        <put-attribute name="footer" expression="/WEB-INF/views/tiles/footer.jsp" />
    </definition>
    <!-- tiles 사용하여 화면에 표현 -->
    <definition name=".tiles/*/*" extends="default_main">
        <put-attribute name="body" value="/WEB-INF/views/{1}/{2}.jsp"/> <!-- controller에서 사용하기 위한 방법을 설정-->
    </definition>
</tiles-definitions>

tiles-definitions에 경로에 맞게 선언을 해주고 빨간색 부분의 default_main을 서로 동일한 명칭으로 선언합니다.

 

6. layout.jsp 소스코드 작성

자 이제 layout.jsp 파일로 갑니다~

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>title</title>
<tiles:insertAttribute name="css" />
<tiles:insertAttribute name="script" />
</head>
<body>
    <tiles:insertAttribute name="header" />
    <div id="content">
        <div class="page-contentinbe">
          <tiles:insertAttribute name="body" />
        </div>
    </div>
    <tiles:insertAttribute name="footer" />
</body>
</html>

 

위와 같이 가장 먼저 맨위에 <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> tiles 태그를 선언하구요

 

tiles.xml

<put-attribute name="css" expression="/WEB-INF/views/tiles/css.jsp" /> 

layout.jsp

<tiles:insertAttribute name="css" /> 둘의 name을 일치시켜줍니다.

다른것도 마찬가지로 맞춰줍니다.

 

7. controller 에서 호출 방법

마지막으로 이제 동적으로 변경될 body 부분에 jsp 파일을 호출할겁니다.

앞서 tiles.xml에서 선언했던 부분과 동일하게 Controller에서 return ".tiles/*/*" 와 같이 호출하면 됩니다.

 

 

 

제대로 호출이 된다면 tiles 설정 끝입니다!!

감사합니다~

 

[출처] https://baessi.tistory.com/2

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
206 [Java Web programming] [Spring] WebFlux란 무엇인가? - 개념(특징), MVC와 비교, 사용 이유 file 졸리운_곰 2023.07.18 4
205 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 에러 file 졸리운_곰 2023.04.07 4
204 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 버튼 file 졸리운_곰 2023.04.07 7
203 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - Toast UI Editor, Viewer file 졸리운_곰 2023.04.07 6
202 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - Tooltip, Snackbar file 졸리운_곰 2023.04.07 3
201 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 날짜, 시간, 날씨 file 졸리운_곰 2023.04.07 7
200 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 구성 졸리운_곰 2023.04.07 9
199 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 소개 file 졸리운_곰 2023.04.07 13
198 [Java Web programming] SpringBoot, Vue 연동하기 file 졸리운_곰 2023.01.30 14
197 [JSP] [jstl ] case when 중첩 방법 file 졸리운_곰 2023.01.24 3
196 [JSP] intelliJ로 JSP 프로젝트 생성, Servlet 실행해보기 file 졸리운_곰 2022.12.31 3
195 [JSP} Jsp 커스텀 태그라이브러리(Custom Tag Library Descriptor) 생성 및 사용 졸리운_곰 2022.12.07 7
194 [JSP] JSP 커스텀 태그(Custom Tag) - 태그파일 file 졸리운_곰 2022.12.07 5
193 [Java Web programming] Velocity 사용하기 졸리운_곰 2022.08.11 7
192 [java html template engine] [Velocity] velocity 기본 문법 file 졸리운_곰 2022.08.10 3
191 [Java Web 프로그래밍] SPRING BOOT SSO 자료 정리 file 졸리운_곰 2022.07.27 10
» [Spring] 스프링 tiles 사용하기! file 졸리운_곰 2021.10.17 26
189 [JSP][Java] [JSP] JSP 문법 구조 / include를 활용해 layout 나누기 file 졸리운_곰 2021.09.09 14
188 [SpringBoot] 타임리프(Thymeleaf) Thymleaf for template engine file 졸리운_곰 2021.09.05 10
187 [스프링부트] Spring Boot + Thymeleaf CRUD Example file 졸리운_곰 2021.09.03 13
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED