SiteMesh的使用--笔记   本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处。 Sitemesh 是一个网页布局和修饰的框架,基于 Servlet 中的 Filter,类似于 ASP.NET 中的‘母版页’技术。参考:百度百科,相关类似技术:Apache Tiles。

  http://www.cnblogs.com/king-xg/p/6472659.html

Sitemesh 是一个网页布局和修饰的框架,基于 Servlet 中的 Filter,类似于 ASP.NET 中的‘母版页’技术。参考:百度百科,相关类似技术:Apache Tiles

1. Maven项目,新建

2. 引入sitemesh2.4.2.jar以及可能需要的server-api.jar,本人的运行环境是wildfly,所以需要引入

  

<!-- sitemesh jar -->
        <dependency>
            <groupId>opensymphony</groupId>
            <artifactId>sitemesh</artifactId>
            <version>2.4.2</version>
        </dependency>
        <!-- sitemesh jar -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>  

3. 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>/*</url-pattern>  
 </filter-mapping>  
 <!-- siteMesh 配置 -->

4. 并在web-info目录下添加decorators.xml的sitemesh的配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<decorators defaultdir="/views/">  
 <!-- 不需要过滤的请求 -->  
 <excludes>  
  <pattern>/static/*</pattern>  
  <pattern>/remote/*</pattern>  
 </excludes>  
 <!-- 定义装饰器要过滤的页面 -->  
 <decorator name="default" page="default.jsp">  
  <pattern>/*</pattern>  
 </decorator>  
</decorators>  

注释: element:decorators 是根节点,defaultdir为绝对路径,此处表示webRoot(项目更目录)下的views文件夹下

   element:excludes,pattern表示不会拦截匹配以下pattern所对应的请求,pattern可配置多个

   element:decorator表示匹配pattern的请求均会被default.jsp所装饰,name作为该配置文件中的唯一标识。

5. 在装饰页面引入,例如:default.jsp

<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %>

6. 在指定位置使用<sitemesh:body></sitemesh:body>,<sitemesh:title></sitemesh:title>,<sitemesh:head></sitemesh:head>....