반응형
1. pom.xml에 sitemesh 추가
<!-- Sitemesh3 -->
<dependency>
<groupId>org.sitemesh</groupId>
<artifactId>sitemesh</artifactId>
<version>3.0.1</version>
</dependency>
2. WEB-INF 밑에 decorator 파일 생성
(저는 WEB-INF/decorator/decoratorList.jsp로 생성했습니다.)
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<title>
<sitemesh:write property='title' />
</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<sitemesh:write property='head' />
</head>
<body>
<div>데코레이터 확인용</div>
<sitemesh:write property='body' />
</body>
</html>
3. src/main/java 밑에 SitemeshFilter 클래스 생성
import org.sitemesh.builder.SiteMeshFilterBuilder;
import org.sitemesh.config.ConfigurableSiteMeshFilter;
public class SitemeshFilter extends ConfigurableSiteMeshFilter {
@Override
protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) {
builder.addDecoratorPath("/*", "/WEB-INF/decorator/decoratorList.jsp");
// 첫번째 매개변수 : 주소 ( 보통 controller의 requestMapping의 value 값 )
// * 등을 사용하여 다양하게 URL의 패턴으로 사용 가능.
// 본 예시의 첫번째 매개변수의 값은 모든 경로를 의미
// 두번째 매개변수 : decorator 파일 경로
}
}
4. src/main/java 밑에 Configuration 클래스를 생성하여 Filter에 SitemeshFilter 클래스를 지정
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ServletFilterConfig {
@Bean
public FilterRegistrationBean siteMeshFilter() {
FilterRegistrationBean filter = new FilterRegistrationBean();
filter.setFilter(new SitemeshFilter()); // 위에서 만든 SitemeshFilter 클래스 지정
return filter;
}
}
여기까지 진행하고 spring boot를 실행하면 decorator가 적용됩니다.
728x90
반응형
'back end > Sitemesh, Tiles' 카테고리의 다른 글
sitemesh & freemarker setting (0) | 2019.07.24 |
---|