sitemesh简单使用

1、简介

SiteMesh 是一个网页布局和修饰的框架,利用它能够将网页的内容和页面结构分离,以达到页面结构共享的目的。css

官网:http://wiki.sitemesh.org/wiki/display/sitemesh/Homehtml

2、配置

一、下载jar包

    自行百度吧,这里就很少说明。
web

二、web.xml配置

<!-- sitemesh 过滤器 注意:若是和其余技术一块儿使用好比springmvc必定要注意顺序-->
<filter>
    <filter-name>sitemesh</filter-name>
    <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>


三、在WEB-INF/新建一个decorators.xml文件,包含如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<decorators >
    <decorator name="front" page="/common/front">  //前台页面母版页
        <pattern>/front/*</pattern>
    </decorator>
    <decorator name="admin" page="/common/admin"> //后台页面母版页
        <pattern>/admin/*</pattern>
    </decorator>
    <excludes> //那些文件不使用母版页
        <pattern>*.js</pattern>
        <pattern>*.css</pattern>
        <pattern>*.gif</pattern>
        <pattern>*.jpg</pattern>
    </excludes>
</decorators>

四、在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.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.PageDecoratorMapper">
            <param name="property.1" value="decorator" />
            <param name="property.2" value="meta.decorator" />
        </mapper>
  <!--       <mapper class="com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper">
            <param name="config" value="${decorators-file}"/>
        </mapper> -->
        <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
            <param name="config" value="${decorators-file}"/>
        </mapper>
    </decorator-mappers>
</sitemesh>




3、使用

页面如何使用不一样的装饰器:  spring

<META name="decorator" content="admin">  后台页面head部分添加这些。mvc

<META name="decorator" content="front">  前台页面head部分添加这些。app

4、原理

SiteMesh是基于Servlet的filter的,即过滤流。它是经过截取response,并进行装饰后再交付给客户。框架

其中涉及到两个名词: 装饰页面(decorator page)和 "被装饰页面(Content page)" , 即 SiteMesh经过对Content Page的装饰,最终获得页面布局和外观一致的页面,并返回给客户。webapp

相关文章
相关标签/搜索