鸿荣源集团行政岗:OpenSymphony——SiteMesh——Decorators
来源:百度文库 编辑:偶看新闻 时间:2024/05/11 19:32:50
一、Web可复用框架概述
为了建立可复用的web应用程序,一个通用的方法是建立一个分层结构,如下面一个普通web应用:
可糟糕的是前端的页面逻辑很难被复用,当你在每一个页面中用数之不尽的include来复用公共的header, stylesheet, scripts,footer时,一个问题出现了——重复的代码,每个页面必须用copy来复用页面结构,而当你需要创意性的改变页面结构时,那么修改起来将会变得很混乱。
SiteMesh通过filter截取request和response,并给原始的页面加入一定的装饰(可能header,footer...),然后把结果返回给客户端,并且被装饰的原始页面并不知道sitemesh的装饰,这也就达到了脱耦的目的。
二、Decorators介绍
Decorator,装饰器模式,SiteMesh使用Decorator模式,用filter截取request和response,把页面组件head ,content ,banner结合为一个完整的视图。通常我们都是用include标签在每个jsp页面中来不断的包含各种header, style sheet, scripts and footer,现在,使用SiteMesh即可简单实现上述要求。
三、环境配置
1. sitemesh.xml文件:一般不用建立它,默认设置足够了(com/opensymphony/module/sitemesh/factory/sitemesh-default.xml)。它可以设置2种信息:
如下例:
*
:插入原始页面(被包装页面)的head标签中的内容(不包括head标签本身)。
:插入原始页面(被包装页面)的body标签中的内容。
:插入原始页面(被包装页面)的title标签中的内容,还可以添加一个缺省值。
:在标签处插入原始页面(被包装页面)的原有的标签的属性中的内容,还可以添加一个缺省值。注意,writeEntireProperty="true"会在插入内容前加入一个空格。
:像jsp页面中的标签一样,可以使用被包装为一个Page对象的页面。例:可用 :<%=page.getTitle()%>达到 的访问结果。
- 前端:JSP和Servlets,或jakarta的velocity
- 控制层框架 Controller : (Struts/Webwork)
- 业务逻辑 Business :主要业务逻辑
- 持久化框架:hibernate/jdo
二、Decorators介绍
三、环境配置
- jar包:在WEB-INF/lib目录下导入:sitemesh-2.3.jar
- tld包:在WEB-INF目录下装入:sitemesh-decorator.tld 和 sitemesh-page.tld
- 配置文件xml:在WEB-INF目录下有2个配置文件:sitemesh.xml(可选) 和 decorators.xml
- 在WebRoot下建立自己的装饰器即可,如_decoratos/main.jsp
1. sitemesh.xml文件:一般不用建立它,默认设置足够了(com/opensymphony/module/sitemesh/factory/sitemesh-default.xml)。它可以设置2种信息:
- Page Parsers:负责读取stream的数据到一个Page对象中以被SiteMesh解析和操作。(不太常用,默认即可)
- Decorator Mappers : 不同的装饰器种类,下面列出2种比较有用的。一种通用的mapper,可以指定装饰器的配置文件名;另一种可打印的装饰器:可以允许你当用http://localhost/aaa/a.html?printable=true方式访问时给出原始页面以供打印(免得把header,footer等的花哨的图片也搭上)
范例:
- defaultdir: 包含装饰器页面的目录
- page : 页面文件名
- name : 别名
- role : 角色,用于安全
- webapp : 可以另外指定此文件存放目录
- Patterns : 匹配的路径,可以用*,那些被访问的页面需要被装饰。
- Decorator标签:被用于建立装饰器页面
- Page标签:被用于从原始内容页面访问装饰器
更多信息请参考:http://www.mscto.com/JavaScript/2009010955000.html
另外:一个注意问题:在配置decorators.xml中,装饰器的page属性前不要加上"/",否则会报错。例:
正确写法:
错误写法:
解签——————————————————————————
——————————————怎么选择
高手请进——————————————
急——————————————
一个问题——————————————————?
月——————
中信——————
英语——————
————————————上古卷轴4————————————
********求助 ——————*********
——————,柳暗花明又一村
薇姿——————
发型设计——————
求助大家—————————————————
随意春芳歇,—————————————
猜歇后语————————
急————————
科学————————物理
近水楼台先得月,————————
折戟沉沙铁未销,————————
暗黑问题————————`~
电脑重装系统————————
耳聋————————母亲
救命啊————————