반응형
1. web.xml
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
<init-param>
<param-name>debug.pagewriter</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
<init-param>
<param-name>TemplatePath</param-name>
<param-value>/WEB-INF/</param-value>
</init-param>
<init-param>
<param-name>NoCache</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>ContentType</param-name>
<param-value>text/html; charset=UTF-8</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>sitemesh-freemarker</servlet-name>
<servlet-class>com.opensymphony.module.sitemesh.freemarker.FreemarkerDecoratorServlet</servlet-class>
<init-param>
<param-name>TemplatePath</param-name>
<param-value>/</param-value>
</init-param>
<init-param>
<param-name>default_encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>sitemesh-freemarker</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
<listener>
<listener-class>freemarker.ext.jsp.EventForwarding</listener-class>
</listener>
2. /WEB-INF/sitemesh.xml
<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.LanguageDecoratorMapper">
<param name="match.en" value="en" />
<param name="match.zh" value="zh" />
</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. /WEB-INF/fmtag.tld
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglib_1_1.dtd">
<taglib>
<tlibversion>2.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>FreeMarker JSP Support</shortname>
<tag>
<name>template</name>
<tagclass>freemarker.ext.jsp.FreemarkerTag</tagclass>
<bodycontent>tagdependent</bodycontent>
<info>Allows evaluation of FreeMarker templates inside JSP</info>
<attribute>
<name>caching</name>
<required>false</required>
</attribute>
</tag>
</taglib>
4. decorators.xml
<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/WEB-INF/layout/">
<excludes>
<pattern>index.html</pattern>
<pattern>/common/*</pattern>
<pattern>*.js</pattern>
<pattern>*.css</pattern>
<pattern>*Json.do*</pattern>
<pattern>/login.do*</pattern>
</excludes>
<decorator name="default" page="default_layout.ftl">
<pattern>/*.do</pattern>
</decorator>
<decorator name="Frame" page="frame_layout.ftl">
<pattern>/*Frame.do</pattern>
</decorator>
<decorator name="Popup" page="popup_layout.ftl">
<pattern>/*Popup.do</pattern>
<pattern>/popup*.do</pattern>
</decorator>
</decorators>
5. default_layout.ftl
<#assign decorator=JspTaglibs["http://www.opensymphony.com/sitemesh/decorator"]>
<#assign page=JspTaglibs["http://www.opensymphony.com/sitemesh/page"]>
<html>
<head>${head}</head>
<body style="width: 100%; height: 100%">
<table border="1" cellspacing="0" cellpadding="0"
style="width: 100%; height: 100%">
<tr>
<td colspan="2"><#include "leftContent.ftl"/></td>
</tr>
<tr>
<td><#include "menu.ftl"/></td>
<td><@decorator.body/></td>
</tr>
<tr>
<td colspan="2"><#include "footer.ftl"/></td>
</tr>
</table>
</body>
</html>
6. content.ftl
<#ftl encoding="UTF-8"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"/>
</head>
<body>
</body>
</html>
728x90
반응형
'back end > Sitemesh, Tiles' 카테고리의 다른 글
spring boot + sitemesh (0) | 2019.09.02 |
---|