SiteMesh简介
* 资料参考:
SIteMesh官方地址:http://www.opensymphony.com/sitemesh/
SIteMesh下载地址:http://java.net/downloads/sitemesh/
* SiteMesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。
* SiteMesh拦截请求不仅能处理动态的内容,如jsp,php,asp等产生的内容,它也能处理静态的内容,如htm的内容,使得它的内容也符合你的页面结构的要求。甚至于它能将HTML文件象include那样将该文件作为一个面板的形式嵌入到别的文件中去。所有的这些,都是GOF的Decorator模式的最生动的实现。
* SiteMesh是由Java 2 with Servlet, JSP and XML等技术来实现的,这使得他能很好地与J2EE应用结合,但它能与其他Web应用很好地集成,例如CGI (Perl/Python/C/C++/etc), PHP, Cold Fusion,等
* SiteMesh是很容易扩展的,并且他的设计方式使得它很容易实现自定义扩展的需求。
SiteMesh原理
SiteMesh框架是OpenSymphony团队开发的一个非常优秀的页面装饰器框架,它通过对用户请求进行过滤,并对服务器向客户端响应也进行过滤,然后给原始页面加入一定的装饰(header,footer等),然后把结果返回给客户端。通过SiteMesh的页面装饰,可以提供更好的代码复用,所有的页面装饰效果耦合在目标页面中,无需再使用include指令来包含装饰效果,目标页与装饰页完全分离,如果所有页面使用相同的装饰器,可以是整个Web应用具有统一的风格。
图例:2个页面是从不同的系统产生的(一个jsp,一个CGI),两个页面都被解析了并且有一个共同的装饰器产生到最终的页面,以便显示一致的风格。
SiteMesh简单例子
官网demo:http://java.net/downloads/siteme ... /sitemesh-blank.war,下载后直接运行。
手动建立demo步骤:
1.拷贝sitemesh-2.4.2.jar into [web-app]/WEB-INF/lib.
2.工程下建立[web-app]/WEB-INF/decorators.xml ,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<decorators defaultdir="/decorators">
<!-- 此处用来定义不需要过滤的页面 -->
<excludes>
</excludes>
<!-- 用来定义装饰器要过滤的页面 -->
<decorator name="main" page="main.jsp">
<pattern>/*</pattern>
</decorator>
</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 content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" /> <parser content-type="text/html;charset=ISO-8859-1" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
</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 ,在 <web-app>标签内增加如下内容:
<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>
到此,你的工程已经建立配置好了sitemesh,你现在可以建立装饰器应用到你的web应用了。
二、
装饰器是值那些装饰原始的请求页面。大部分的装饰器包括:
meta tags (keywords, description, author) :meta标签
stylesheet (CSS) 样式
header 头部
navigation 导航
footer 底部
copyright notice 版权信息
- 大小: 97.3 KB
分享到:
相关推荐
Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大 量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。 它不仅仅能处理动态的...
页面装饰器(Sitemesh)是一种广泛用于Web应用的开源框架,它的主要功能是提供页面布局和装饰功能,使得...通过实际操作和学习提供的`demo`,你可以进一步掌握Sitemesh的使用技巧,从而在自己的开发工作中游刃有余。
这个demo是基于博主的**Sitemesh入门和使用笔记**,提供了对应的源码供学习者实践和参考。以下是关于Sitemesh的详细讲解: 1. **安装与配置** - 首先,你需要将Sitemesh的JAR文件添加到你的项目类路径中。这可以...
Java Sitemesh是一个开源的页面布局和装饰...通过研究这些资源,你可以更好地理解和学习如何在实际项目中应用Sitemesh。学习和掌握Sitemesh能让你在开发Java Web应用时更加得心应手,提升项目的整体质量和用户体验。
Sitemesh 提供了一种简单且灵活的方式来管理和维护 Web 应用的页面布局,使得开发者可以专注于页面内容的编写,而无需关心如何布局和样式化这些内容。此外,Sitemesh 还支持自定义过滤器,可以根据需要扩展其功能,...
### Struts2整合SiteMesh技巧 #### 概述 在Web开发中,为了实现页面布局的统一性与可维护性,通常会...通过以上步骤,即可完成Struts2与SiteMesh的基本整合,从而实现页面布局的一致性和美观性,提高项目的可维护性。
1. **安装和配置 SiteMesh**:首先,你需要将 SiteMesh 的 JAR 文件添加到你的项目类路径中。然后,在你的 Web 应用的 `web.xml` 配置文件中,添加 SiteMesh Filter 的配置,指定其拦截哪些 URL。 2. **创建 ...
将Struts2与SiteMesh整合,可以实现更加统一和规范化的网站外观,并减少重复代码。 整合Struts2和SiteMesh主要涉及以下几个步骤: 1. **添加依赖**:首先,在项目中引入SiteMesh的jar包。如果使用的是Maven,可以...
- **sitemesh.rar** 和 **sitemesh-2.4.1(1).zip**、**sitemesh-2.4.1.zip**:这些是Sitemesh的源码或者不同版本的压缩包,可能包含了示例代码和库文件,供开发者研究和学习。 5. **Sitemesh与其他框架的集成** -...
总结来说,sitemesh2和velocity的集成旨在提高Web应用的可维护性和一致性。解决页面乱码问题的关键在于确保整个应用链路中的字符编码一致。通过正确配置项目、服务器、模板、sitemesh和HTTP响应头,我们可以有效地...
通过深入学习和实践这个“sitemesh框架简单例子”,你将能够熟练地运用Sitemesh来构建更加专业且美观的Web应用。 总的来说,Sitemesh是一个强大且灵活的工具,它简化了Web页面布局的管理,让开发者能够专注于业务...
8. **文档和实例**:在提供的资料中,文档将详细介绍如何安装、配置和使用SiteMesh 2.3,实例则可以帮助初学者快速理解和上手实践。 9. **依赖库(Lib)**:SiteMesh 2.3 包含了运行所需的库文件,确保了在各种环境...
**Sitemesh** 是一个开源的网页布局和装饰框架,主要用在Java Web应用程序中,用于提供统一的页面布局和美化。它可以帮助开发者快速创建整洁、一致的网站外观,通过分离内容、样式和布局,使得代码更加模块化,易于...
1. 页面装饰:SiteMesh可以将共用的页面内容放在装饰器页面中,以便于复用和维护。 2. 配置灵活:SiteMesh通过配置文件来配置指定的装饰器,用户可以根据需要进行配置。 3. 与其他技术整合:SiteMesh可以与其他技术...
SiteMesh 是一个开源的网页布局和装饰框架,主要用于Java Web应用程序,它可以帮助开发者实现页面的统一外观和感觉,以及提供了...对于希望优化Web应用界面设计和管理的开发者来说,学习和掌握SiteMesh是非常有价值的。
**sitemesh-2.2.1.jar** 是一个用于Web应用程序界面布局的开源框架,由OpenSymphony团队开发。Sitemesh的主要功能是提供页面...对于希望提升网站整体视觉效果的开发者来说,学习和掌握Sitemesh是一项非常有价值的技术。
SiteMesh 是一个开源的Web应用程序框架,主要用于帮助开发者实现页面布局和装饰功能。它通过拦截HTTP请求,将页面内容与布局模板相结合,从而提供了一种简单有效的方式来管理和控制Web应用的外观和感觉。在Web开发中...