`

sitemesh的简单回顾

阅读更多
来源http://blog.csdn.net/bluishglc/article/details/5969905
sitemesh主要有三个主要文件:sitemesh.xml,decorators.xml和做布局用的jsp页面。
 一、sitemesh.xml
 对于sitemesh.xml这个文件,官方文档上说它不是必须的。sitemesh总是会有一个份默认的配制。如果你打算提供自己的sitemesh.xml,也最好放在web-inf目录下,目前我还没有找到该文件的位置是否可配制以及在何处配制的说明。从sitemesh.xml文件内容上看它主要负责配制3方面的信息:1.装饰器描述文件decorators.xml的存放位置和名称,默认是/WEB-INF/decorators.xml。2.page-parsers的配制。对这一项的不配制目前还是很清楚,大概是指明解析页面使用的类吧。其中字符集的设定可能需要注意,否则可能会出现乱码问题吧?个人猜测。3.decorator-mappers,目前尚不清楚用途。下面是官方提供的一份配制样本.
 



[xhtml] view plaincopy
01.<sitemesh>  
02.    <property name="decorators-file" value="/WEB-INF/decorators.xml" />  
03.    <excludes file="${decorators-file}" />  
04.    <page-parsers>  
05.        <parser content-type="text/html"  
06.            class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />  
07.        <parser content-type="text/html;charset=ISO-8859-1"  
08.            class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />  
09.    </page-parsers>  
10.    <decorator-mappers>  
11.        <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">  
12.            <param name="config" value="${decorators-file}" />  
13.        </mapper>  
14.    </decorator-mappers>  
15.</sitemesh>  
 




二、decorators.xml
 decorators.xml是配制的核心,它主要用来描述一系列的decorator.每一个decorator需要指明实际用来装饰的JSP页面是哪一个(在这个页面中往往会出现<decorator:head /><decorator:body /><decorator:title /><decorator:getProperty /><decorator:usePage />这些装饰标签),以及这个decorator要装饰的页面有哪些(也就是一系列的url pattern)。下面是oobbs系统的decorators.xml.在它里有两个decorator.分别对应该系统的用户页面和管理页面。需要特别说明的是defaultdir是用来指明装饰文件所在的默认文件夹,如果指定了这个文件夹,那么<decorator/>标签中的page属性中如果填入相对路径,它将会从defaultdir开始查找。在下面的例子中,由于page都给出的是绝对路径,因此defaultdir并不起作用。
 



[xhtml] view plaincopy
01.<decorators defaultdir="/decorators">  
02.    <excludes>  
03.        <pattern>/40*.jsp</pattern>  
04.        <pattern>/*ajax=true*</pattern>  
05.        <pattern>/scripts/dojo/*</pattern>  
06.        <pattern>/struts/dojo/*</pattern>   
07.        <pattern>/resources/*</pattern>  
08.        <pattern>/admin/login.jsp</pattern>  
09.        <pattern>/site/login.jsp</pattern>  
10.    </excludes>   
11.    <decorator name="adminDecorator" page="/admin/decorator.jsp">  
12.        <pattern>/admin/*</pattern>  
13.    </decorator>  
14.    <decorator name="siteDecorator" page="/site/decorator.jsp">  
15.        <pattern>/site/*</pattern>  
16.    </decorator>  
17.</decorators>  
 




三.做布局用的jsp页面
 decorators.xml的配制中都会指向一些这样的页面。这些页面是一些普通的jsp页面,主要是用来布局的。像header,footer这样的框架部分用<jsp:include page="xxx.jsp" />引入,需要被装饰的部分用decorator标签替换就可以了。下面是一个样本。其中<decorator:body/>就代表被装饰页面的body部分,在生成html时,这部分会被sitemesh动态替换掉。
 



[xhtml] view plaincopy
01.<%@ include file="/admin/taglibs.jsp"%>  
02.<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator"  prefix="decorator"%>  
03.<%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page"%>  
04.<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
05.<html>  
06.    <head>  
07.        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
08.        <title><decorator:title/></title>  
09.        <link rel="stylesheet" type="text/css" href="<c:url value='/admin/styles/layout.css'/>" />  
10.    </head>  
11.    <body>  
12.        <div id="container">  
13.            <div id="header">  
14.                <jsp:include page="header.jsp" />  
15.            </div>  
16.            <div id="menu">  
17.                <jsp:include page="menu.jsp" />  
18.            </div>  
19.            <div id="mainContent">  
20.                <div id="sidebar">  
21.                    <jsp:include page="sidebar.jsp" />  
22.                </div>  
23.                <div id="content">  
24.                    <decorator:body/>  
25.                </div>  
26.            </div>  
27.            <div id="footer">  
28.                <jsp:include page="footer.jsp" />  
29.            </div>  
30.        </div>  
31.    </body>  
32.</html>  


分享到:
评论

相关推荐

    sitemesh框架简单例子

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

    sitemesh简单教程页面装配器

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

    sitemesh简单demo

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

    SiteMesh教程及SiteMesh官方文档翻译

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

    SiteMesh简单应用

    通过阅读《SiteMesh简单应用》这篇博文(链接:https://takeme.iteye.com/blog/1716468),你可以获取更多关于SiteMesh的实际应用案例和实践技巧。此外,阅读官方文档和社区论坛也是深入学习SiteMesh的重要途径。 ...

    siteMesh demo+文档

    在demo中,你会发现几个简单的JSP页面,它们代表了你需要装饰的原始内容。SiteMesh会捕获这些页面的响应,并应用预先定义的装饰模板,比如header.jsp、footer.jsp等,将这些内容插入到原始页面中,形成一个完整的、...

    java sitemesh 页面框架

    1. **易用性**:Sitemesh的配置简单,可以快速集成到现有的Java Web应用中。 2. **灵活性**:支持多种装饰模式,可以为不同类型的页面使用不同的装饰器。 3. **可扩展性**:可以通过自定义Filter或使用表达式语言...

    sitemesh

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

    SiteMesh

    它通过拦截HTTP请求,将页面内容与布局模板相结合,从而提供了一种简单有效的方式来管理和控制Web应用的外观和感觉。在Web开发中,SiteMesh扮演着视图层的装饰者角色,使得页面设计更加模块化,降低了代码的复杂性。...

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

    页面装饰器(Sitemesh)是一种广泛用于Web应用的开源框架,它的主要功能是提供页面布局和装饰功能,使得开发者可以方便地实现统一的页面头部、尾部、侧边栏等元素,从而提高网站的整体风格一致性。在本实例中,我们...

    sitemesh-2.2.1.jar sitemesh-2.2.1.jar

    开发者可以通过简单的配置,就能让整个网站的布局变得整齐划一,同时保持内容页面的独立性。 **学习和使用Sitemesh**: 要使用Sitemesh,开发者需要了解其配置文件(通常为`sitemesh.xml`),以及如何编写装饰器...

    sitemesh3官方下载包

    它主要目的是帮助开发者统一网站的外观和感觉,通过提供一种简单的方式来装饰(或模板化)整个Web应用中的页面。Sitemesh3是Sitemesh项目的第三个主要版本,提供了更现代的API和性能改进。 在Sitemesh3的官方下载...

    sitemesh入门demo

    在"**sitemesh入门demo**"中,我们将学习如何设置和使用Sitemesh来创建一个简单的Web应用程序。这个demo是基于博主的**Sitemesh入门和使用笔记**,提供了对应的源码供学习者实践和参考。以下是关于Sitemesh的详细...

    sitemesh 例子

    此外,提供的"简单文档说明"可能详细介绍了如何设置和运行这个例子,包括安装Sitemesh库、配置Web应用、创建装饰器和测试页面等步骤。阅读这份文档可以帮助初学者快速上手。 总的来说,Sitemesh是一个强大的工具,...

    sitemesh.jar包

    sitemesh.jar包 sitemesh.jar 包sitemesh.jar 包sitemesh.jar包

    sitemesh例子

    通过这个简单的“sitemesh例子”,初学者可以了解到 Sitemesh 如何帮助我们简化 Web 开发中的页面布局工作。随着对 Sitemesh 的深入理解和实践,你将能够更有效地管理你的 Web 应用的样式和结构。

    springMVC与sitemesh的结合

    而Sitemesh则是一个页面布局和装饰框架,主要用于处理Web应用中的页面布局问题,比如统一头部、底部和侧边栏,提升用户体验并简化开发。 将Spring MVC与Sitemesh结合使用,可以实现更高效的Web应用开发。以下是对这...

    sitemesh布局知识点汇总

    下面是一个简单的Sitemesh安装和配置示例,以展示如何在项目中集成Sitemesh: ##### 1. 安装步骤 - **添加依赖**:将Sitemesh的jar包(例如`sitemesh-2.1.jar`)放置到项目的lib目录下。 - **配置Web.xml**:在Web...

    sitemesh3-demo

    【sitemesh3-demo】是一个基于Sitemesh3框架的示例项目,旨在展示如何在Web应用程序中有效地实现页面布局和装饰功能。Sitemesh是一个开源的Java Web应用框架,主要用于增强网页的外观和结构,通过定义装饰模板,可以...

Global site tag (gtag.js) - Google Analytics