개발노트/Spring

[Spring] SiteMesh - decorators.xml로 공통 레이아웃 관리

dev-mylee 2025. 1. 2. 11:27

decorators.xml 파일은 SiteMesh의 레이아웃 설정을 담당하는 핵심 파일이다.

 

1. 기본 구조

<decorators defaultdir="/WEB-INF/views/common/decorators">
    <excludes>
        <pattern>**/*.htm</pattern>
        <pattern>/exclude/*</pattern>
    </excludes>

    <decorator name="layout-default" page="layout-default.jsp">
        <pattern>/*</pattern>
    </decorator>
</decorators>

 

 

 

2. 주요 설정 요소

  1. defaultdir
    • 레이아웃 JSP 파일들의 기본 경로
    • 모든 decorator의 기준 디렉토리가 됨
  2. excludes
    • SiteMesh를 적용하지 않을 URL 패턴들
    • 팝업창이나 특수 페이지에서 자주 사용
  3. decorator
    • name: 레이아웃 식별자
    • page: 실제 JSP 파일 위치
    • pattern: 적용될 URL 패턴

 

3. 레이아웃 사용법

<!-- layout-default.jsp -->
<html>
<head>
    <decorator:title default="Default Title"/>
    <decorator:head/> 
</head>
<body>
    <header>공통 헤더</header>
    <decorator:body/>
    <footer>공통 푸터</footer>
</body>
</html>

 

 

✅ 메모

레이아웃 파일 내에서 <decorator:body/>에 각 페이지의 내용이 주입된다.

파일 이름은 반드시 decorators.xml이어야 하고, 위치는 보통 WEB-INF 아래에 둔다.

특히 CSRF 토큰이나 공통 CSS/JS 같은 보안/UI 요소들을 레이아웃에 한 번만 설정해두면 모든 페이지에 자동 적용되니까 매우 편리하다.