关于前端使用SiteMesh的一些介绍

Overview

在网站开发的过程中,通常一个网站会有一个整体的风格,页面都有很多共同的菜单,横栏的底部信息。以前我们会采用include标签在每个jsp页面中来不断的包含各种headerstylesheetscripts and footer,现在,在sitemesh的帮助下,我们不必再使用这种方式来保持风格统一了。

关于SiteMesh概述

sitemesh的设计思想是装饰者(decorator)设计模式。SiteMesh使用一个Servlet过滤器,它可以拦截返回的Web浏览器HTML,提取相关内容,并将其合并到被称为装饰器(Decorator)的模板。

关于装饰者(decorator)设计模式

尝试着简短的几句话介绍清楚,发现很难..列一个官方的定义:

1

The Decorator Pattern attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. (装饰者模式可以动态地给一个对象增加其他职责。就扩展对象功能来说,装饰者模式比生成子类更为灵活。)

详细的关于装饰者设计模式的资料,推荐下面两篇文章:
1.http://blog.chinaunix.net/uid-20761674-id-304542.html
2.http://www.cnblogs.com/rush/archive/2011/05/08/Decorator_DesignPattern_NETFramework.html

SiteMesh

首先看一下SiteMesh的工作过程图:
sitemesh2.png

从宏观上来看上图,HeaderFooter都是在每个界面都是固定或者有细微变化的(但不会有结构上的变化),改变的只是中间的元素。这时候我们可以编写一个decorator页面(上图中的browser-theme.jsp),这样在编写实际的展示页面(左上角的Menu.jsp)时,只需要去展示实际上不同的界面,并指定它需要哪个decorator修饰,这样在返回结果时,实际上是decorator和实际的展示页面组合成的新页面,如上图中右下角的Menu.jsp界面。
看得出来,SiteMesh使得我们可以不必在每个界面都重复编写相同的模板性元素,而只需要专注于实际需要展示的内容。
而且,使用SiteMesh可以实现更大的灵活性,给界面指定不同的decorator,比如下图中,使用手机浏览器和网页浏览器访问Menu.jsp时,该页面是被不同的decorator修饰,最终返回不同的组合界面。
sitemesh1.png

 

官方介绍:http://wiki.sitemesh.org/wiki/display/sitemesh3/SiteMesh+3+Overview

转载于:https://my.oschina.net/wuweixiang/blog/1830916

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值