back end/Sitemesh, Tiles

sitemesh & freemarker setting

노루아부지 2019. 7. 24. 00:19

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
loading