SiteMesh在项目中的配置

SiteMesh在项目中的配置
首先在web.xml里面增加siteMesh的配置:
<filter>
 <filter-name>sitemesh</filter-name>
 <filter-class>
  com.opensymphony.module.sitemesh.filter.PageFilter
 </filter-class>
</filter>
<filter-mapping>
 <filter-name>sitemesh</filter-name>
 <url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
 <filter-name>sitemesh</filter-name>
 <url-pattern>*.jsp</url-pattern>
</filter-mapping>
凡是提交的.do和.jsp的请求,都要经过siteMesh的处理,哈哈,当然html的就不用处理啦
另外在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" />
 </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>
其实这个配置倒是一般是默认的。嘿嘿。不过我当时也研究了一下。不过主要的还是这个文件是在SITEMESH的JAR包中自动装载进来的,它决定了另外一个配置文件的位置和名字,就是decorators.xml:
<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/decorators"> 
 <decorator name="default" page="default.jsp" />
 <decorator name="defaulths" page="default_hs.jsp"/>
 <decorator name="main" page="main.jsp" />
 <decorator name="mainhs" page="main_hs.jsp"/>
</decorators>

这里配置了4个渲染的模板,同时也给这四个模板定义了名字。看看模板的内容,比如这个main.jsp:
<%@ include file="/common/taglibs.jsp"%>
<html>
 <head>
  <title>
   <decorator:title default="DV110.com" />
  </title>
  <%@ include file="/common/meta.jsp"%>
  <decorator:head />
 </head>
 <body id="homepage">
  <div id="header">
   <jsp:include page="/common/header.jsp" />
  </div>
  <div align="center" style="height:500px;">
   <table border="0" cellpadding="0" cellspacing="0" width="779" align="center">
    <tr>
     <td valign="top" >
      <%@ include file="/common/messages.jsp"%>
      <h1 align="center">
       <decorator:getProperty property="page.heading" />
      </h1>
      <decorator:body />
     </td>
    </tr>
   </table>
  </div>
  <div id="footer">
   <jsp:include page="/common/footer.jsp" />
  </div>
 </body>
</html>
以上是系统知道要用SiteMesh来处理后,要使用的模板。
以下是系统的页面,比如设备更新页面,会在页面中有个<meta name="decorator" content="default${dName}">
其中content=""这里面的名字就是我们配置的模板的名字。
<%@ page language="java" errorPage="/error.jsp" pageEncoding="UTF-8"
 contentType="text/html;charset=UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
<html>
 <head>
  <title>设备信息更新</title>
  <meta name="decorator" content="default${dName}">
 </head>
 <body>
  <html:form action="deviceVIS.do?method=updateDevice" method="post">
   <html:hidden property="id" />
   <table width="516" border="0" align="center">
    <tr>
     <td width="84">
      设备名称
     </td>
     <td width="288">
      <html:text property="name" />
     </td>
     <td width="122">
       
     </td>
    </tr>
    <tr>
     <td>
      安装地址
     </td>
     <td>
      <html:text property="installLocation" />
     </td>
     <td>
       
     </td>
    </tr>
    <td>
      
    </td>
    <td>
     <input type="submit" name="Submit" value="保存" />
     <input type="reset" name="cancel" value="重置" />
    </td>
    <td>
      
    </td>
    </tr>
   </table>
  </html:form>
 </body>
</html>

  

posted @ 2016-08-15 13:59  rj_bian  阅读(238)  评论(0编辑  收藏  举报