Tiles와 같은 템플릿 엔진으로 뷰단의 디자인패턴을 구현하는데 사용된다.
Tiles는 Composite view패턴이라는 것을 사용하고 sitemesh는 Decorator패턴을 사용하는데,
간단히 비교하여 Tiles는 설정이 복잡하지만 재활용성 및 성능은 우수하고, Sitemesh는 재활용성이나 성능면에서 좀 더 떨어지지만 설정이 쉽다.
http://wiki.sitemesh.org/wiki/display/sitemesh/Learn+-+Getting+Started+with+SiteMesh 에서 간단한 사용법을 확인할 수 있다.
▶ 라이브러리 설치
http://wiki.sitemesh.org/wiki/display/sitemesh/Download에서 다운받아 lib디렉터리에 추가하거나 메이븐으로 설치
◆ Sitemesh설정
▶ Web.xml에 필터추가
: Sitemesh가 작동될 수 있도록 필터 매핑작업을 해준다.
▶ WEB-INF 아래에 sitemesh.xml 작성
Sitemesh가 처리하는 전반적인 설정등을 작업하고, 후에 작성할 decorators.xml파일의 경로를 지정해 주어야 한다.
◆ Sitemesh 사용법
▶ WEB-INF아래 decorators.xml 작성
Sitemesh의 레이아웃을 사용할 경로를 해당 파일에 작성한다.
(경로는 포함시킬 페이지의 경로가 아닌 컨트롤러의 접근경로를 적어준다.)
<excludes>
: Sitemesh를 사용하지 않는 경로를 지정하는 태그
<decorator>
: Sitemesh의 기본 레이아웃을 설정하고, 해당 레이아웃을 사용할 경로를 지정하는 태그
위 처러 설정하게 되면
/includeSample/* 경로로 접근하게 되면 sitemesh를 사용하지 않게 되고,
/sitemeshSample/view/*경로로 접근하는 모든 페이지는
/WEB-INF/jsp/decorators/layout.jsp를 기본 레이아웃으로 하는 sitemesh를 사용한다.
▶ 레이아웃 작성
기본 틀이되는 레이아웃을 작성하고 해당 레이아웃 페이지에서 컨트롤러에서 리턴하는 페이지의 일부를 해당 레이아웃에서 사용할 수 있다.
<decorator:head />
: 컨트롤러에서 리턴하는 페이지의 head를 불러온다.
<decorator:body />
: 컨트롤러에서 리턴하는 페이지의 body를 불러온다.
▶ <decorator:getProperty>
<decorator:body/>를 이용하여 불러올 때 불러오는 페이지의 body속성을 불러올 수 있게 해주는 태그.
body태그의 속성정보 이므로 body태그 속성자리에서 사용한다.