前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于前端使用SiteMesh的一些介绍 转

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

作者头像
wuweixiang
发布2018-08-14 10:31:16
4530
发布2018-08-14 10:31:16
举报
文章被收录于专栏:吴伟祥吴伟祥

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
sitemesh2.png

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

sitemesh1.png
sitemesh1.png

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

本文转载自:http://nohup.cc/article/49/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Overview
  • 关于SiteMesh概述
    • 关于装饰者(decorator)设计模式
      • SiteMesh
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档