일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개인정보 수집 유효기간 자바
- 오버라이딩
- 혼공얄코
- 로그인 핸들러 구현
- spring security 설정
- 자바의 정석
- 멀티태스킹
- 프로그래머스
- 쿠키
- java
- spring security 커스텀
- hackerrank
- userdetailsservice 설정
- 입출력
- 자바의정석
- 오버로딩
- 달리기 경주 자바
- 오블완
- CPU
- 리눅스
- 다형성
- 티스토리챌린지
- spring security
- 멀티프로세싱
- 캡슐화
- 객체지향
- over()
- SQL Mapper
- 바탕화면 정리 자바
- authenticationprovider 설정
- Today
- Total
쉽게 쉽게
spring tiles 사용법 본문
1. Spring tiles란?
Spring Tiles는 Spring Framework와 함께 사용되는 템플릿 엔진으로, 웹 애플리케이션에서 일관된 레이아웃을 적용하기 위해 사용된다.
Spring Tiles를 사용하면 jsp의 상단, 사이드, 메인, 하단 등에 간편하게 레이아웃을 적용시켜 줄 수 있다.
즉 페이지들을 일괄관리 할 수 있고, 공통으로 사용하는 부분들을 매번 등록을 따로 해주지 않아도 되기 때문에 편리하다.
Spring Tiles의 사용법
- 의존성 설정: Maven 등을 사용하여 Spring Tiles의 의존성을 프로젝트에 추가
- Tiles 설정 파일 작성: Tiles 설정 파일을 작성하여 각각의 타일과 레이아웃을 정의
- Tiles 사용 설정: 컨트롤러에서 타일을 사용하도록 설정 주로 TilesConfigurer를 사용하여 Tiles 설정 파일을 등록하고, ViewResolver를 설정하여 타일 기반의 뷰를 처리
- 뷰 작성: 타일 기반의 뷰 템플릿을 작성, 각 타일의 이름을 사용하여 타일을 참조하고 조합하여 전체 웹 페이지를 구성
2. 예시
1. 의존성 설정
pom.xml에 tiles 추가
<properties>
<org.apache.tiles-version>3.0.3</org.apache.tiles-version>
</properties>
<!-- Tiles -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>${org.apache.tiles-version}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>${org.apache.tiles-version}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>${org.apache.tiles-version}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-extras</artifactId>
<version>${org.apache.tiles-version}</version>
</dependency>
2. Tiles 설정 파일 작성
tiles.xml에 작성
<definition name="layout" template="/WEB-INF/views/tiles/layout.jsp">에는 기본으로 사용될 jsp 화면을 설정
<!-- layout.jsp -->
<html>
<head>
<!-- 헤더 타이틀 등의 공통 요소 정의 -->
</head>
<body>
<div id="header">
<!-- 헤더 내용 정의 -->
</div>
<div id="body">
<!-- 동적으로 삽입될 컨텐츠 정의 -->
</div>
<div id="footer">
<!-- 푸터 내용 정의 -->
</div>
</body>
</html>
layout.jsp에는 사용할 요소(header 등)를 포함하고 있어야 한다.
template.jsp가 공백이거나 내용이 없는 경우, 해당 템플릿을 사용하는 <definition>에서 Tiles 속성을 정의할 때는 빈 내용으로 처리
하지만 layout.jsp가 빈화면이더라도 headerTemplate.jsp가 정의되어 있다면 headerTemplate.jsp화면을 렌더링한다.
즉 1차적으로 기본 화면(layout.jsp)을 살펴보고 2차적으로 나머지 화면이 있는지 확인 후 알맞게 렌더링 한다.
<tiles-definitions>
<!-- main layout -->
<definition name="layout" template="/WEB-INF/views/tiles/layout.jsp">
<put-attribute name="header" value="/WEB-INF/views/tiles/headerTemplate.jsp" />
<put-attribute name="left" value="/WEB-INF/views/tiles/sidebarTemplate.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="foot" value="/WEB-INF/views/tiles/footerTemplate.jsp" />
</definition>
</tiles-definitions>
3. Tiles 사용 설정
servlet-context.xml에 View Resolver는 JSP 파일의 경로 및 확장자 등을 관리할 수 있다.
여기에 tilesViewResolver와 tilesConfigurer를 추가하여 tiles 파일의 관리와 tiles.xml 설정을 사용할 수 있도록 관리한다.
<beans:bean id="viewResolver" 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" />
</beans:bean>
<!-- tiles 설정 -->
<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:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<beans:property name="definitions">
<beans:list>
<beans:value>/WEB-INF/spring/tiles.xml</beans:value>
</beans:list>
</beans:property>
</beans:bean>
4. jsp 작성
<tiles:insertAttribute name="" /> 안에 설정파일에서 설정했던 이름 삽입해서 사용
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<html>
<body>
<tiles:insertAttribute name="header" />
<div>
<tiles:insertAttribute name="content" />
</div>
<tiles:insertAttribute name="footer" />
</body>
</html>
https://myhappyman.tistory.com/81
잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다. |
'개발공부 > Spring' 카테고리의 다른 글
[Spring] Spring Security 구현 (1) - 설정 (1) | 2024.10.31 |
---|---|
[Spring] tiles 적용 (5) | 2024.09.05 |
[Spring] static 변수에 autowired 설정 방법 (0) | 2024.07.29 |
[Spring] 스케줄러 구현 (1) | 2024.06.30 |
[Spring] 게시글 조회수 중복방지 (1) | 2024.05.30 |