博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SiteMesh介绍
阅读量:6980 次
发布时间:2019-06-27

本文共 1930 字,大约阅读时间需要 6 分钟。

1. SiteMesh简介

SiteMesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权等等。它不仅仅能处理动态的内容,如jsp,php,asp等产生的内容,它也能处理静态的内容,如htm的内容,使得它的内容也符合你的页面结构的要求。甚至于它能将HTML文件象include那样将该文件作为一个面板的形式嵌入到别的文件中去。所有的这些,都是GOF的Decorator模式的最生动的实现。尽管它是由java语言来实现的,但它能与其他Web应用很好地集成。

2. SiteMesh原理

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

3. SiteMesh3

只有Alpha2版本而且很久没更新了,它号称性能快3倍内存少1倍。

另外,Atlassian公司因为在自己的产品中使用了SiteMesh2,所以后来也一直有维护,出到了2.5-atlassian-9版,不过不在maven中央库中,可以在下载。

4. SiteMesh2的使用

引入SiteMesh的依赖

在pom.xml中添加如下:

opensymphony
sitemesh
2.4.2
runtime

添加过滤器

在web.xml中添加过滤器:

sitemesh
com.opensymphony.module.sitemesh.filter.PageFilter
sitemesh
/*

新建decorators.xml文件

在WEB-INF下新建decorators.xml文件:

/static/*
/*

理论上SiteMesh只会搞那些MIME type为html的页面,但在配置里先exclude掉一些静态内容和API的路径会更省心。

创建装饰器页面default.jsp

在decorators.xml中定义了一个装饰页面default.jsp:

< %@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>    My Site - <decorator:title default="Welcome!" />    

装饰模板中可以使用的Sitemesh标签有:

  • 取出被装饰页面的head标签中的内容。
  • 取出被装饰页面的body标签中的内容。
  • 取出被装饰页面的title标签中的内容。default为默认值
  • 取出被装饰页面相关标签的属性值。
  • 将被装饰页面构造为一个对象,可以在装饰页面的JSP中直接引用。

创建被装饰页面test.jsp

创建test.jsp如下:

    Hello world    

hello world.

测试

访问test.jsp页面,查看源代码会显示如下:

    My Site - Hello world    

hello world.

转载地址:http://zmnpl.baihongyu.com/

你可能感兴趣的文章
曾经被微软视为毒瘤的“开源”,现在却成了“宠儿”
查看>>
VR、AR成为Facebook F8大会上最亮眼主角
查看>>
Spring4-自动装配Beans-通过注解@Autowired在Set方法上
查看>>
RAC 11.2的新特性
查看>>
2星|《金融学从入门到精通》:金融学名词解释的堆砌
查看>>
数据库四种事务隔离级别
查看>>
基于模板的excel导出
查看>>
基于Nginx负载均衡方案
查看>>
双活数据中心
查看>>
python练习题
查看>>
cut命令
查看>>
powershell最常用的命令之(一)
查看>>
LAMP一键安装脚本
查看>>
linux之打补丁
查看>>
phpexcel
查看>>
使用logrotate实现日志轮训压缩
查看>>
centos下解决nginx 无法连接gitlab socket
查看>>
What is Citrix X1
查看>>
华为OSPF配置
查看>>
Win8 Metro(C#)数字图像处理--2.63图像指数增强
查看>>