본문 바로가기

개발/BACK

[Spring Framework] Sitemesh 설정 방법

728x90

Sitemesh란 ?

 

사용자가 화면을 효율적으로 구성할 수 있도록 도와주는 프레임워크이다.

페이지 별로 공통되는 영역은 공통영역으로 관리될 수 있도록 할 수 있어서 화면의 디자인 구성이 복잡해지지 않는다.

 

Sitemesh는 web.xml에 filter 클래스를 이용해 사용 설정을 마친 후, sitemesh.xml과 decorators.xml 을 정의해야한다. 

sitemesh.xml의 위치는 /WEB-INF/ 위치에 위치시키면 되고, decorators.xml은 sitemesh.xml 파일에서 경로를 설정해줄 수 있기 때문에 아무 곳이나 위치시키면 되지만, 편의상 같은 폴더에 위치시키는 걸 추천한다.

 

sitemesh.xml

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<sitemesh>
    <property name="decorators-file" value="/WEB-INF/decorators.xml"/>
    <excludes file="${decorators-file}"/>
 
    <page-parsers>
        <parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
        <parser content-type="text/html;charset=utf-8" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
    </page-parsers>
 
    <decorator-mappers>
 
        <mapper class="com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper">
            <param name="property.1" value="meta.decorator" />
            <param name="property.2" value="decorator" />
        </mapper>
 
        <mapper class="com.opensymphony.module.sitemesh.mapper.FrameSetDecoratorMapper">
        </mapper>
 
        <mapper class="com.opensymphony.module.sitemesh.mapper.AgentDecoratorMapper">
            <param name="match.MSIE" value="ie" />
            <param name="match.Mozilla [" value="ns" />
            <param name="match.Opera" value="opera" />
            <param name="match.Lynx" value="lynx" />
        </mapper>
 
        <mapper class="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper">
            <param name="decorator" value="printable" />
            <param name="parameter.name" value="printable" />
            <param name="parameter.value" value="true" />
        </mapper>
 
        <mapper class="com.opensymphony.module.sitemesh.mapper.RobotDecoratorMapper">
            <param name="decorator" value="robot" />
        </mapper>
 
        <mapper class="com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper">
            <param name="decorator.parameter" value="decorator" />
            <param name="parameter.name" value="confirm" />
            <param name="parameter.value" value="true" />
        </mapper>
 
        <mapper class="com.opensymphony.module.sitemesh.mapper.FileDecoratorMapper">
        </mapper>
 
        <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
            <param name="config" value="${decorators-file}" />
        </mapper>
 
    </decorator-mappers>
 
</sitemesh>
cs

<property name="decorators-file"> : decorators.xml 의 파일 경로를 설정해준다

 

PageDecoratorMapper : jsp 페이지에 meta 태그에 decorators 항목이 존재할 경우,

                      설정되어 있는 decorator 를 리턴한다

                      left.jsp 장식자를 decorators.xml 에 설정했다면 decorators meta태그 항목이 

                      적용되어 있는 페이지는 모두 left.jsp 페이지를 가져온다.

                      혹시 다른 장식자를 적용시키고 싶다면 meta 태그의 content 항목을 해당 장식자 명

                      으로 변경시켜주면 된다

                      ex ) right.jsp 장식자로 변경

                     <meta class="decorator" content="right.jsp"...

 

AgentDecoratorMapper : 브라우저에 따라 장식자를 변경할 수 있도록 해준다.

 

                       만약 설정해놓은 페이지를 찾지 못한다면 기본 장식자 페이지를 가져오게 된다

 

ConfigDecoratorMapper : decorators.xml 파일에 명시되어 있는 decorator를 사용한다는 설정이다

 

 

내가 봤을 때 중요한 태그들의 기능만 설명해놓았다다음은 예제를 만들어보겠다 
728x90