来源
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通过拦截HTTP请求,对返回的HTML内容进行装饰。它使用一种叫做装饰器...
### Sitemesh简单教程页面装配器 #### 一、Sitemesh概述 Sitemesh是一款用于Web应用中的页面布局管理工具,它通过采用装饰器(Decorator)设计模式,实现了对Web页面布局的灵活管理和重用。传统的Web开发中,...
这个“sitemesh简单demo”是一个使用 Maven 构建的项目,旨在提供一个快速入门的示例,帮助初学者理解并掌握 sitemesh 的基本用法。 在 Web 开发中,sitemesh 通过拦截 HTTP 请求,将用户定义的页面模板(通常称为...
下面是一个简单的例子,展示了如何在Spring MVC项目中同时使用Sitemesh和Freemarker。 **`web.xml`配置** ```xml <filter-name>sitemesh <filter-class>...
通过阅读《SiteMesh简单应用》这篇博文(链接:https://takeme.iteye.com/blog/1716468),你可以获取更多关于SiteMesh的实际应用案例和实践技巧。此外,阅读官方文档和社区论坛也是深入学习SiteMesh的重要途径。 ...
在demo中,你会发现几个简单的JSP页面,它们代表了你需要装饰的原始内容。SiteMesh会捕获这些页面的响应,并应用预先定义的装饰模板,比如header.jsp、footer.jsp等,将这些内容插入到原始页面中,形成一个完整的、...
1. **易用性**:Sitemesh的配置简单,可以快速集成到现有的Java Web应用中。 2. **灵活性**:支持多种装饰模式,可以为不同类型的页面使用不同的装饰器。 3. **可扩展性**:可以通过自定义Filter或使用表达式语言...
**Sitemesh** 是一个广泛使用的开源Web应用框架,它主要功能是提供页面布局和装饰功能,用于统一网站的外观和感觉。Sitemesh通过在Web应用中引入“母版”(Master Page)的概念,使得开发者可以轻松地创建一致性的...
它通过拦截HTTP请求,将页面内容与布局模板相结合,从而提供了一种简单有效的方式来管理和控制Web应用的外观和感觉。在Web开发中,SiteMesh扮演着视图层的装饰者角色,使得页面设计更加模块化,降低了代码的复杂性。...
页面装饰器(Sitemesh)是一种广泛用于Web应用的开源框架,它的主要功能是提供页面布局和装饰功能,使得开发者可以方便地实现统一的页面头部、尾部、侧边栏等元素,从而提高网站的整体风格一致性。在本实例中,我们...
开发者可以通过简单的配置,就能让整个网站的布局变得整齐划一,同时保持内容页面的独立性。 **学习和使用Sitemesh**: 要使用Sitemesh,开发者需要了解其配置文件(通常为`sitemesh.xml`),以及如何编写装饰器...
它主要目的是帮助开发者统一网站的外观和感觉,通过提供一种简单的方式来装饰(或模板化)整个Web应用中的页面。Sitemesh3是Sitemesh项目的第三个主要版本,提供了更现代的API和性能改进。 在Sitemesh3的官方下载...
在"**sitemesh入门demo**"中,我们将学习如何设置和使用Sitemesh来创建一个简单的Web应用程序。这个demo是基于博主的**Sitemesh入门和使用笔记**,提供了对应的源码供学习者实践和参考。以下是关于Sitemesh的详细...
此外,提供的"简单文档说明"可能详细介绍了如何设置和运行这个例子,包括安装Sitemesh库、配置Web应用、创建装饰器和测试页面等步骤。阅读这份文档可以帮助初学者快速上手。 总的来说,Sitemesh是一个强大的工具,...
sitemesh.jar包 sitemesh.jar 包sitemesh.jar 包sitemesh.jar包
通过这个简单的“sitemesh例子”,初学者可以了解到 Sitemesh 如何帮助我们简化 Web 开发中的页面布局工作。随着对 Sitemesh 的深入理解和实践,你将能够更有效地管理你的 Web 应用的样式和结构。
而Sitemesh则是一个页面布局和装饰框架,主要用于处理Web应用中的页面布局问题,比如统一头部、底部和侧边栏,提升用户体验并简化开发。 将Spring MVC与Sitemesh结合使用,可以实现更高效的Web应用开发。以下是对这...
下面是一个简单的Sitemesh安装和配置示例,以展示如何在项目中集成Sitemesh: ##### 1. 安装步骤 - **添加依赖**:将Sitemesh的jar包(例如`sitemesh-2.1.jar`)放置到项目的lib目录下。 - **配置Web.xml**:在Web...
【sitemesh3-demo】是一个基于Sitemesh3框架的示例项目,旨在展示如何在Web应用程序中有效地实现页面布局和装饰功能。Sitemesh是一个开源的Java Web应用框架,主要用于增强网页的外观和结构,通过定义装饰模板,可以...