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/>
'sitemesh' 카테고리의 다른 글
[SiteMesh] SiteMesh(정의/설정) (0) | 2013.04.15 |
---|