`

使用SiteMesh装饰页面

阅读更多
SiteMesh框架是OpenSymphony团队开发的一个非常优秀的页面装饰器框架,它通过对用户请求进行过滤,并对服务器向客户端响应也进行过滤,然后给原始页面加入一定的装饰(header,footer等),然后把结果返回给客户端。通过SiteMesh的页面装饰,可以提供更好的代码复用,所有的页面装饰效果耦合在目标页面中,无需再使用include指令来包含装饰效果,目标页与装饰页完全分离,如果所有页面使用相同的装饰器,可以是整个Web应用具有统一的风格。

SiteMesh使用很简单,具体有以下几步:

1) 拷贝 sitemesh-2.3.jar 到 [web-app]/WEB-INF/lib.

2) 在[web-app]/WEB-INF/新建一个decorators.xml文件,包含以下内容

<decorators>

</decorators>

       3)可选项,在[web-app]/WEB-INF/建立一个sitemesh.xml文件,内容如下:

<sitemesh>

    <property name="decorators-file" value="/WEB-INF/decorators.xml"/>

    <excludes file="${decorators-file}"/>

    <page-parsers>

        <parser default="true" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>

        <parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>

        <parser content-type="text/html;charset=gbk" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>

    </page-parsers>

    <decorator-mappers>

        <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">

            <param name="config" value="${decorators-file}"/>

        </mapper>

    </decorator-mappers>

</sitemesh>

4)在[web-app]/WEB-INF/web.xml添加以下内容:

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

       <dispatcher>REQUEST</dispatcher>

        <dispatcher>FORWARD</dispatcher>

        <dispatcher>INCLUDE</dispatcher>

    </filter-mapping>

一个简单的例子

1)在[web-app]下创建一个decorators文件夹,在该文件下再创建一个装饰页面main.jsp,内容如下:

<%@ page contentType="text/html; charset=GBK"%>

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

<html>

    <head>

       <title><decorator:title default="第一个装饰器页面"/></title>

       <decorator:head/>

    </head>

    <body>

       SiteMesh快速入门<hr>

       <decorator:body />

       <hr>

       <div style="font:9pt" align="center">SiteMesh快速入门</div>

    </body>

</html>

2)创建一个目标页面index.jsp,内容如下:

<%@ page contentType="text/html; charset=GBK"%>

<html>

<head>

    <title>第一次使用SiteMesh</title>

</head>

<body>

    <h3>使用SiteMesh有什么好处?</h3>

    <li>目标页面和装饰页面完全分离</li>

    <li>做到真正的页面复用</li>

    <li>更容易实现统一的网站风格</li>

</body>

</html>

3)在decorators.xml中加入以下内容:

<?xml version="1.0" encoding="GBK"?>

<decorators defaultdir="/decorators">

    <!-- 此处用来定义不需要过滤的页面 -->

    <exculdes>

    </exculdes>

    <!-- 用来定义装饰器要过滤的页面 -->

    <decorator name="main" page="main.jsp">

        <pattern>/*</pattern>

    </decorator>

</decorators>
4)发布运行,结果如下:





  • 大小: 16.4 KB
分享到:
评论

相关推荐

    sitemesh装饰器入门

    **Sitemesh装饰器入门** Sitemesh 是一个开源的 Web 应用程序框架,它主要用来帮助开发者实现页面布局和装饰功能。Sitemesh 的核心概念是“装饰器”,这个概念源自于软件设计模式中的装饰者模式。通过使用 Sitemesh...

    java sitemesh 页面框架

    2. **灵活性**:支持多种装饰模式,可以为不同类型的页面使用不同的装饰器。 3. **可扩展性**:可以通过自定义Filter或使用表达式语言(EL)来控制装饰过程。 4. **与Struts、Spring MVC等框架兼容**:Sitemesh可以...

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

    4. **设置页面内容**:对于每个需要装饰的页面,可以使用特殊的注释来指示Sitemesh如何将内容插入到模板中。例如,`&lt;@s.content/&gt;`表示将当前页面的内容插入到模板的指定位置。 5. **运行与测试**:在MyEclipse中...

    sitemesh2 集成velocity 装饰页面乱码

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

    SiteMesh教程.pdf

    同时,SiteMesh允许自定义装饰器映射器(Decorator Mappers),用于控制哪些页面使用哪个装饰器,以及如何解析页面内容。 7. 请求和响应处理: SiteMesh拦截请求和响应,它能够处理页面的request和response,对响应...

    sitemesh简单教程页面装配器

    当用户访问`index.jsp`时,Sitemesh会自动使用配置好的装饰器页面对其进行包装,从而呈现出一个完整的页面。 #### 三、装饰器(Decorator)概念及其优势 装饰器模式是一种常用的软件设计模式,用于动态地给一个...

    sitemesh

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

    jsp 页面框架sitemesh 全面帮助文档及示例

    - **标记内容页面**:在需要被装饰的JSP页面中,使用特殊的指令或标签来指示Sitemesh如何处理内容。 4. **示例资源** - **sitemesh资料整理.chm**:这可能是一个包含Sitemesh详细信息的CHM帮助文件,提供了框架的...

    sitemesh-3.0.1.jar

    sitemesh 装饰页面技术.

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

    Sitemesh 是一个流行的页面布局和装饰框架,它可以为我们的应用程序提供统一的外观和感觉。Tiles2 虽然功能强大,但在某些情况下,Sitemesh 提供了更简单、更轻量级的解决方案。 首先,让我们理解 Spring MVC 和 ...

    sitemesh框架简单例子

    Sitemesh是一款强大的Web页面布局和装饰框架,它主要用于帮助开发者实现网站的统一外观和感觉。这个框架的主要功能是将页面的主体内容与页眉、页脚、侧边栏等通用部分分离,使得在大量网页中保持一致的设计风格变得...

    siteMesh demo+文档

    4. **应用装饰**:通过在JSP页面中使用特殊的注解(例如`&lt;@sitemesh/page&gt;`),或者在Servlet中使用`PageDecorator`接口,可以指示SiteMesh对哪些页面进行装饰。 5. **自定义装饰策略**:如果你的项目有特殊需求,...

    SiteMesh教程及SiteMesh官方文档翻译

    **第五步:创建被装饰页面** 最后,创建一个具体的页面,例如`/index.jsp`,并将其标记为需要装饰的页面。 ```jsp ;charset=GBK" %&gt; &lt;title&gt;AgentTest 本页只有一句,就是本句. ``` 当用户访问`/index....

    sitemesh入门demo

    Sitemesh 是一个开源的网页布局和装饰框架,它主要负责处理Web应用程序的页面布局,使得开发者可以集中精力于应用的核心功能,而不用过多关注页面样式的一致性和美观性。Sitemesh 提供了一种优雅的方式来组织和装饰...

    siteMesh使用示例

    如果需要对某些特定页面不应用装饰,或者只对特定部分进行装饰,可以使用 `excludes` 和 `includes` 属性在 `web.xml` 中配置 SiteMesh 过滤器。 9. **优化与性能** SiteMesh 通常对性能的影响很小,但可以通过...

    SiteMesh

    3. **页面内容(Page Content)**: 页面内容是实际的业务逻辑页面,它们被SiteMesh装饰器包围,只需关注自身的业务逻辑,无需关心页面布局。 4. **配置(Configuration)**: SiteMesh的配置文件(通常为`sitemesh....

    Sitemesh 3 的使用及配置

    为了演示Sitemesh的功能,我们准备两个页面:一个是内容页面(`demo.html`),另一个是装饰页面(`decorator.html`)。 - **demo.html**: ```html &lt;!DOCTYPE html&gt; 内容页的标题 内容页的body部分 ...

    sitemesh jar包

    4. **标记待装饰页面**:在待装饰的JSP页面中添加特定的注释或指令,告诉Sitemesh如何处理这些页面。 5. **内容和装饰模板的结合**:Sitemesh会自动处理这些标记,将页面内容插入到模板中相应的位置。 **四、...

    sitemesh jar包机tld文件

    这两个tld文件让开发者可以方便地在JSP页面中使用SiteMesh的自定义标签,进行页面布局和装饰操作。 下面详细解释这两个tld文件的用途: 1. `sitemesh-page.tld`: 这个文件定义了一个名为`&lt;decorator:page&gt;`的标签...

Global site tag (gtag.js) - Google Analytics