'Framework/Site Mesh'에 해당되는 글 2건

SiteMesh - 초기 설정 방법 & 설정 2009.04.17
SiteMesh - SiteMesh란? 2009.04.17

SiteMesh - 초기 설정 방법 & 설정

Published on: 2009. 4. 17. 09:41 by louis.dev
sitemesh.war


0. Library
commons-collections.jar
sitemesh-2.4.1.jar 추가

1. web.xml 설정


<context-param>                                     <!-- SiteMesh 설정 파일인 sitemesh.xml파일의 경로를 지정한다. -->
        <param-name>sitemesh.configfile</param-name>
        <param-value>/WEB-INF/config/sitemesh.xml</param-value>
    </context-param>
   
<filter>                                                    <!-- SiteMesh의 필터를 설정한다.  -->
        <filter-name>sitemesh</filter-name>
        <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
</filter>
   
 
<filter-mapping>                                         <!-- url 패턴이 .jsp로 들어오면 위의 sitemesh 필터를 실행한다.  -->
        <filter-name>sitemesh</filter-name>
        <url-pattern>*.jsp</url-pattern>
        <dispatcher>REQUEST</dispatcher>     <!-- jsp에 대한 요청이 REQUEST,FORWARD 일때 sitemesh 필터를 실행한다. -->
        <dispatcher>FORWARD</dispatcher>
</filter-mapping>

2. sitemesh.xml 설정

<sitemesh>
     <!-- decorators.xml 의 위치를 지정 -->
    <property name="decorators-file" value="/WEB-INF/config/decorators.xml"/>
   
    <!-- 아래는 붙여 넣기 하기 -->
    <excludes file="${decorators-file}"/>

    <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.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>

3. decorators.xml 설정
<?xml version="1.0" encoding="UTF-8"?>

<decorators defaultdir="/decorators">                 <!-- WebContent 폴더 아래 decorators라는 폴더를 default directory로 한다.  -->
    <decorator name="main" page="main.jsp">      
        <pattern>/index.jsp</pattern>                     <!-- index.jsp로 url 패턴이 들어오면 main.jsp를 실행한다  -->
    </decorator>
   
    <decorator name="panel" page="panel.jsp"/>
</decorators>


4. main.jsp 에각 모듈 붙여 넣기

<?xml version="1.0" encoding="EUC-KR" ?>
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %> <!-- 태그 라이브러리 설정 -->
<%@ taglib prefix="page" uri="http://www.opensymphony.com/sitemesh/page" %>              <!-- 태그 라이브러리 설정 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR" />
<title>Insert title here</title>
</head>
<body>
<table>
   
    <tr>
        <td><page:applyDecorator name="panel" page="/include/top.jsp"/></td>   <!--  decorators 에서 panel 이라고 이름 붙여진 곳
                                                                                                                  의 경로에 있는 페이지로 이동하여 설정을 가지고 오고
                                                                                                                  page에 정의된 top.jsp로 이동하여 panel에 선언된 설정
                                                                                                                  부분을 긁어와 가져 온다. -->
    </tr>
   
    <tr>
        <td><decorator:body/></td>                                                                   <!--  index.jsp로 main.jsp에 접근 하였음 으로
                                                                                                                          index.jsp의 body내용을 가져온다.
                                                                                                                          decorator:title 하면 title의 설정을 가져 온다 -->
    </tr>
   
    <tr>
        <td><page:applyDecorator name="panel" page="/include/bottom.jsp"/></td>
    </tr>
   
</table>
</body>
</html>


5. panel.jsp 설정하기

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<%@ taglib prefix="page" uri="http://www.opensymphony.com/sitemesh/page" %> 
<decorator:body/>

'Framework > Site Mesh' 카테고리의 다른 글

SiteMesh - SiteMesh란?  (0) 2009.04.17

SiteMesh - SiteMesh란?

Published on: 2009. 4. 17. 09:38 by louis.dev
SiteMesh란?
레이 아웃을 배치할때 각각의 페이지를 모듈로 하여 Include 방식으로 추가 하는 방식

'Framework > Site Mesh' 카테고리의 다른 글

SiteMesh - 초기 설정 방법 & 설정  (0) 2009.04.17