상세 컨텐츠

본문 제목

sitemesh 적용

스프링

by e7e 2022. 10. 12. 16:26

본문

thymeleaf의 시대지만, sitemesh도 나름 괜찮당 어찌보면 tiles보다는 낫지 않은가?

 

pom.xml에 라이브러리 추강

		<!-- SiteMesh -->
		<dependency>
			<groupId>opensymphony</groupId>
			<artifactId>sitemesh</artifactId>
			<version>2.4.2</version>
		</dependency>

web.xml에 필터 추강

<filter>
    <filter-name>sitemesh</filter-name>
    <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
 <filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>

꼬옥 WEB-INF 폴더에  sitemesh 설정파일인   sitemesh.xml 파일  일단 아래 내용으로 추가

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<sitemesh>
    <property name="decofile" value="/WEB-INF/decorators.xml" />
    <excludes file="${decofile}" />
    
    <page-parsers>
        <parser content-type="text/html"
            class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
    </page-parsers>    
    
    <decorator-mappers>
        <mapper 
            class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
            <param name="config" value="${decorfile}" />
        </mapper>
    </decorator-mappers>
</sitemesh>

데코레이터 설정 파일인 decorators.xml 파일 일단 아래 내용으로 추강

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<decorators defaultdir="/WEB-INF/test">
    <decorator name="main" page="decorator.jsp">
        <pattern>/aaa/*</pattern>
 <!-- 1개의 decorator는 0개 이상의 pattern을 가질 수 있다 -->
    </decorator>
    <excludes>
        <pattern>/**/merong/*</pattern>
    </excludes>
</decorators>

누느로 화긴용 decorator.jsp를  아래처럼 맹글장

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<html>
    <head>
        <title><decorator:title default="메롱" /></title>
        <decorator:head />
    </head>
    <body>
    <div><h1>보통 header가 오는 자링</h1></div>
    <hr/>
    
    <!-- getProperty -->
    
    <decorator:body />
    
    <hr/>
    <div>보통 footer가 오는 자링</div>
    <decorator:getProperty property="page.local_script" />
    </body>
</html>

누느로 화긴용 test.jsp를  아래처럼 맹글장

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
    <title>확인용</title>
    <script>
    window.onload = function() {
    	alert("메에롱~~~");
    }
    </script>
</head>
<body>
    <h1>요것만 데코레이터 body로 갈까용?</h1>
<content tag="local_script">
<script>
function f_aaa(){
	console.log("merong");
}
f_aaa();
</script>
</content>    
</body>
</html>

시랭 화긴용 써블렛을 아래처럼 맹글장

@Controller
@RequestMapping("/aaa")
public class HomeController {	
	@RequestMapping(value = "/test", method = RequestMethod.GET)
	public String test() {
		return "test";
	}

}

시랭해서 누느로 보장. 보인다! 끄읕

'스프링' 카테고리의 다른 글

Apache POI  (0) 2022.11.16
STS3(Spring Tool Suite) 설치  (0) 2022.10.20
아주 주의  (2) 2022.06.29
log4j2  (0) 2022.06.28
MyBatipse  (0) 2022.06.10

관련글 더보기