`

SiteMesh2简单研究笔记

 
阅读更多

一.导入依赖

导入在中央库中的依赖方法如下

<dependency>
    <groupId>opensymphony</groupId>
    <artifactId>sitemesh</artifactId>
    <version>2.4.2</version>
    <scope>runtime</scope>
</dependency>

 

 

最新版的SiteMesh2

 

<repositories>
    <repository>
        <id>SiteMesh</id>
        <name>SiteMesh Repository</name>
        <url>http://maven-us.nuxeo.org/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>opensymphony</groupId>
        <artifactId>sitemesh</artifactId>
        <version>2.5-atlassian-9</version>
    </dependency>
</dependencies>

 

 

二.web.xml中添加Filter

在web.xml中添加下面这个filter

<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>

 该filter可以放在其它filter后面,比如org.springframework.web.filter.CharacterEncodingFilter

 

三.装饰器decorator

编写装饰器JSP页面,比如

<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>
<html>
<head>
    <title>My Site - <decorator:title default="Welcome!" /></title>
    <decorator:head />
</head>
<body>
<decorator:body />
</body>
</html>

注意<decorator:title default="Welcome!" /> <decorator:head /> <decorator:body />

 

四.配置文件decorators.xml

通过配置文件通知

<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/WEB-INF/layouts">
    <!-- 不进行装饰的路径 -->
    <excludes>
        <pattern>/static/*</pattern>
        <pattern>/api/*</pattern>
    </excludes>

    <!-- 默认装饰器 -->
    <decorator name="default" page="decorator.jsp">
        <pattern>/*</pattern>
    </decorator>

    <decorator name="anotherdecorator" page="decorator2.jsp">
        <pattern>/site*</pattern>
    </decorator>

    <decorator name="htmldecorator" page="html.jsp">
        <pattern>*.html</pattern>
        <pattern>*.htm</pattern>
    </decorator>

    <decorator name="none">
        <!-- These files will not get decorated. -->
        <pattern>/none/*</pattern>
    </decorator>

</decorators>

 

1.理论上SiteMesh只会搞那些MIME type为html的页面,但在配置里先exclude掉一些静态内容和Restful API的路径会更省心;

2.根据路径匹配来选用装饰器,并按照从左到右匹配的方式,*号的级别最低,比如例子中(1) /site* 或 *.html 均匹配不上时才会使用 default装饰器 ; (2)/site.html 会使用anotherdecorator装饰器;

分享到:
评论

相关推荐

    sitemesh框架简单例子

    在“sitemesh框架简单例子”这个教程中,我们将深入理解Sitemesh的基本概念和用法。 首先,我们需要了解Sitemesh的工作原理。Sitemesh通过拦截HTTP请求,对返回的HTML内容进行装饰。它使用一种叫做装饰器...

    Struts2整合SiteMesh技巧

    ### Struts2整合SiteMesh技巧 #### 概述 在Web开发中,为了实现页面布局的统一性与可维护性,通常会采用一种称为“页面布局管理”的技术。Struts2框架提供了对SiteMesh的支持,这是一种强大的页面布局管理工具。...

    struts2-sitemesh-plugin-2.2.1.1.jarstruts2

    `struts2-sitemesh-plugin-2.2.1.1.jar`是Struts2框架与Sitemesh集成的插件,使得Struts2应用能够利用Sitemesh的功能来美化和规范化页面布局。 **Struts2框架** Struts2的核心功能包括动作映射、结果处理、数据绑定...

    sitemesh2 集成velocity 装饰页面乱码

    本案例涉及的是将sitemesh2与velocity框架进行集成,以实现页面装饰功能。sitemesh是一款开源的Web页面布局和装饰框架,而velocity则是一个轻量级的Java模板引擎,用于生成动态网页内容。下面我们将深入探讨这个集成...

    初试sitemesh实现模块简易整合

    **初试sitemesh实现模块简易整合** Sitemesh 是一个开源的网页布局框架,用于在Java Web应用程序中实现页面装饰(Decorator)模式。它可以帮助开发者统一网站的头部、底部、侧边栏等通用部分,使得网站设计更加整洁...

    Struts2整合SiteMesh

    2. **配置Struts2**:在struts.xml配置文件中,添加SiteMesh插件的配置,使Struts2知道需要使用SiteMesh进行页面装饰: ```xml *"/&gt; &lt;filter-name&gt;struts2 &lt;filter-class&gt;org.apache.struts2.dispatcher.ng....

    java sitemesh 页面框架

    2. **复杂性**:对于简单的页面布局,使用Sitemesh可能显得过度工程化。 在提供的压缩包中,"SiteMesh"可能包含了Sitemesh的源码、文档、示例项目或者其他配置文件。通过研究这些资源,你可以更好地理解和学习如何...

    sitemesh入门demo

    这个demo是基于博主的**Sitemesh入门和使用笔记**,提供了对应的源码供学习者实践和参考。以下是关于Sitemesh的详细讲解: 1. **安装与配置** - 首先,你需要将Sitemesh的JAR文件添加到你的项目类路径中。这可以...

    sitemesh2.5源码

    **Sitemesh2 源码分析** Sitemesh 是一个开源的网页布局和装饰框架,主要用于增强Web应用的外观一致性。Sitemesh2是其第二个主要版本,它提供了更加强大和灵活的功能来帮助开发者统一网站的页面布局。在这个项目中...

    siteMesh demo+文档

    2. **配置SiteMesh**:在web.xml中配置SiteMesh Filter是必要的,这会告诉Servlet容器何时及如何使用SiteMesh来处理请求和响应。 3. **定义装饰模板**:SiteMesh允许你创建一个或多个装饰模板,这些模板定义了页面...

    SiteMesh教程及SiteMesh官方文档翻译

    下面是一个简单的例子,展示了如何在Spring MVC项目中同时使用Sitemesh和Freemarker。 **`web.xml`配置** ```xml &lt;filter-name&gt;sitemesh &lt;filter-class&gt;...

    sitemesh

    **Sitemesh** 是一个广泛使用的开源Web应用框架,它主要功能是提供页面布局和装饰功能,用于统一网站的外观和感觉。Sitemesh通过在Web应用中引入“母版”(Master Page)的概念,使得开发者可以轻松地创建一致性的...

    sitemesh简单demo

    这个“sitemesh简单demo”是一个使用 Maven 构建的项目,旨在提供一个快速入门的示例,帮助初学者理解并掌握 sitemesh 的基本用法。 在 Web 开发中,sitemesh 通过拦截 HTTP 请求,将用户定义的页面模板(通常称为...

    SiteMesh

    SiteMesh 是一个开源的Web应用程序框架,主要用于帮助开发者实现页面布局和装饰功能。它通过拦截HTTP请求,将页面内容与布局模板相结合,从而提供了一种简单有效的方式来管理和控制Web应用的外观和感觉。在Web开发中...

    siteMesh框架demo

    SiteMesh是一款开源的Web应用程序界面布局框架,它主要用于帮助开发者实现网页的统一布局。这个"siteMesh框架demo"是一个小型示例项目,旨在演示如何在实际开发中集成和使用SiteMesh框架。通过这个Demo,我们可以...

    sitemesh简单教程页面装配器

    ### Sitemesh简单教程页面装配器 #### 一、Sitemesh概述 Sitemesh是一款用于Web应用中的页面布局管理工具,它通过采用装饰器(Decorator)设计模式,实现了对Web页面布局的灵活管理和重用。传统的Web开发中,...

    页面装饰器(sitemesh)实例源代码

    通过研究这些示例,你可以更好地理解Sitemesh如何与Openfire配合工作,并将其应用到自己的项目中。 总的来说,Sitemesh通过提供页面装饰功能,简化了Web应用的界面设计,使开发者可以专注于业务逻辑,而无需过多...

    使用sitemesh替换tiles2,spring mvc+spring web flow+sitemsh

    Tiles2 虽然功能强大,但在某些情况下,Sitemesh 提供了更简单、更轻量级的解决方案。 首先,让我们理解 Spring MVC 和 Spring Web Flow。Spring MVC 是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)框架,...

Global site tag (gtag.js) - Google Analytics