SiteMesh是一个用来在JSP中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。提供了一种在网站中更有效的组织页面布局的方式。
SiteMesh设计思想是,用户发送request至服务器,服务器根据此request生成动态数据,生成网页,准备返回给客户端。就在返回前,SiteMesh进行拦截,对此网页进行解析,将title、body等部分拆解出来,套上模板后,再返回给客户端。由于SiteMesh在返回客户端的最后一步工作,此时的网页已经具备了标准的html网页格式,因此SiteMesh只需解析标准的html网页,无需考虑各个Web应用是应用了JSP、ASP,还是Velocity技术,相当灵活。
SiteMesh使用了Decorator的设计模式。
本文为大家展示一个简单的SiteMesh例子。
首先创建一个web工程.名字就叫做SitemeshSample.将sitemesh-2.3.jar, commons-collections.jar放到lib目录下。
在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>
</filter-mapping>
这里定义了一个过滤器.所有的请求都交由sitemesh来处理
在WEB-INF下创建一个decorators.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/decorators">
<decorator name="main" page="main.jsp">
<pattern>/*</pattern>
</decorator>
</decorators>
这是定义了模板页,也就是所有页面在返回给客户端之前,先在这里加上装饰,套上模板。
defaultdir="/decorators"说明了模板页的路径。<decorator name="main" page="main.jsp">模板页的名称。 <pattern>/*</pattern>表示对所有的response进行处理
在web下面建一个文件夹取名decorators.在decoratots下面创建上面定义的模板页面main.jsp,内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><decorator:title />
</title>
<body>
<p>Add head decorator...</p>
<decorator:body />
<p>Add foot decorator...</p>
</body>
</html>
说明:
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>
此处为decorator标签的声明。因为我们下面要使用到它
<decorator:title />
把请求的原始页面的title内容插入到<title></title>,比如我们要请求index.jsp页面的时候。会把index.jsp中的title的内容放入到这里
<decorator:body />
把请求的原始页面的body内容插入到<body></body>,发现没有我们在这句的前面加上了<p>Add head decorator...</p>和<p>Add foot decorator...</p>
相当于给我们请求的页面的body内容加上了头部和尾部.实现了模板功能。
在WEB-INF下创建我们要请求访问的页面index.jsp,内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>SiteMesh Sample Site</title>
</head>
<body>
Welcome to the SiteMesh sample...
</body>
</html>
把web工程部署到tomcat容器中。
输入http://localhost:8080/SitemeshSample/index.jsp
页面效果如下:
Add head decorator...
Welcome to the SiteMesh sample...
Add foot decorator...
不难发现,我们index.jsp中只有Welcome to the SiteMesh sample... 一句。但是在返回给我们之前套上了main.jsp模板页。在它的前面和后面分别加上了一句话。通过Sitemesh我们可以很容易实现页面中动态内容和静态装饰外观的分离。
分享到:
相关推荐
SiteMesh is a web-page layout and decoration framework and web- application integration framework to aid in creating sites consisting of many pages for which a consistent look/feel, navigation and ...
struts2-sitemesh-plugin-2.0.8.jar
sitemesh-3.0-alpha-2.jar
`struts2-sitemesh-plugin-2.2.1.1.jar`是Struts2框架与Sitemesh集成的插件,使得Struts2应用能够利用Sitemesh的功能来美化和规范化页面布局。 **Struts2框架** Struts2的核心功能包括动作映射、结果处理、数据绑定...
sitemesh-2.4.2-src.jar 是sitemesh的源文件jar包,当调试时需要选择该jar包进行资源查找,很好用的页面架构工具
struts2-sitemesh-plugin-2.1.8.1.jar
struts2-sitemesh-plugin-2.1.6.jar
SiteMesh是一个网页布局和装饰框架以及Web应用程序集成框架,可帮助创建由页面组成的网站,这些页面需要一致的外观,导航和布局方案。 SiteMesh会拦截对通过Web服务器请求的任何静态或动态生成的HTML页面的请求,...
SiteMesh、SpringMVC 和 Mybatis 是三个在Java Web开发中广泛应用的技术框架,它们共同构建了一个高效、可扩展且易于维护的Web应用程序架构。 SiteMesh 是一个页面布局和装饰框架,它的主要作用是帮助开发者实现...
解决 java.lang.NoSuchFieldException: DEFAULT_PARAM>问题,下载后替换即可。
**sitemesh-2.2.1.jar** 是一个用于Web应用程序界面布局的开源框架,由OpenSymphony团队开发。Sitemesh的主要功能是提供页面装饰能力,它可以帮助开发者统一网站的外观和感觉,实现页面模板和内容的分离。通过在...
struts框架与sitemesh框架整合的插件,在java web开发中可以制作模板页,使自己做的网站看起来更专业
Sitemesh 主要适用于那些需要保持一致界面风格的大型Web应用,例如企业级门户、电商网站、内容管理系统等。通过Sitemesh,开发者可以集中精力于业务逻辑的实现,而无需关心每个页面的布局细节。 总结来说,Sitemesh...
sitemesh-2.4.1.jar sitemesh-2.4.1.jar sitemesh-2.4.1.jar sitemesh-2.4.1.jar sitemesh-2.4.1.jar sitemesh-2.4.1.jar
Sitemesh是一个开源的Java Web应用框架,主要用于增强网页的外观和结构,通过定义装饰模板,可以统一网站的头部、底部和侧边栏等元素,提高开发效率和代码复用性。 Sitemesh3是Sitemesh的第三个主要版本,相比之前...
- 在`sitemesh-demo01`项目中,可以看到一个简单的例子,包括装饰器模板、被装饰的页面和Web应用的配置。通过运行这个示例,你可以直观地了解Sitemesh如何工作。 7. **扩展与优化** - Sitemesh支持自定义装饰策略...
sitemesh-2.2.1.jarsitemesh-2.2.1.jarsitemesh-2.2.1.jar
**Sitemesh装饰器入门** Sitemesh 是一个开源的 Web 应用程序框架,它主要用来帮助开发者实现页面布局和装饰功能。Sitemesh 的核心概念是“装饰器”,这个概念源自于软件设计模式中的装饰者模式。通过使用 Sitemesh...
SiteMesh是一个Web页面布局修饰框架, 用于构建包含大量页面, 需要一致的外观样式(look/fell), 导航和布局机制的大型网站. sitemesh应用Decorator模式,用filter截取request和response,把页面组件head,content,...
用于在SSH2工程中使用sitemesh-2.4.jar 包;