1.<decorator:head/>
插入原始页面的<head>标签中的内容。
没有属性。
2.<decorator:body/>
插入原始页面的<body>标签中的内容。
注释:装饰jsp:<body onload="<decorator:getProperty property="body.onload" />">,
可以在装饰页面body中使用如上语法来获得被装饰页面的事件。
3.<decorator:title [default=""]/>
插入被装饰页面的title标签中的内容
default属性:当没有在被装饰页面找到title中有内容时此值被插入
4.<decorator:getProperty property="" [default=""][writeEntireProperty=""]/>
插入原始页面的property属性指定的值同名的属性。
property:指定那个属性将要被插入
default:如果没有发现指定的属性,则插入此值
writeEntireProperty:表示是否将(空格 属性名=“属性值”)整个插入,允许时的值是true或yes或1
下面是writeEntireProperty属性的一个例子:
装饰器页面: <body bgcolor="White"<decorator:getProperty property="body.onload" writeEntireProperty="true" />>
被装饰页面: <body onload="document.someform.somefield.focus();">
经过sitemesh装饰后的效果: <body bgcolor="White" onload="document.someform.somefield.focus();">
HtmlPage接口对此的解释是:sitemesh允许一个页面被装饰器装饰,也允许从中提取属性值。
链接:
(HTMLPage接口)http://www.opensymphony.com/sitemesh/api/com/opensymphony/module/sitemesh/HTMLPage.html
(sitemesh流程图)http://www.opensymphony.com/sitemesh/flow.html
从流程图中可以看出:此框架先解析原页面到Page object,然后请求适当的装饰器(decorators.xml)从容器中,
通过配置文件可以找到装饰器页面,如果找到了便 应用装饰器页面/request/response到Page object对象。。。。
5.<decorator:userPage id=""/>
实例化装饰器页面为Page对象,并赋值给一个变量。
id属性是必须有的
1.<page:applayDecorator name="" [page="" title=""]>
</page:applayDecorator>
应用一个装饰器到指定的内容,这个内容可能是被内联的一个页面,或者是page属性指定
的任何一个页面
name:被包含页面要应用的那个装饰器的名字
page:被包含的页面
title:覆盖被包含页面的title标签的内容
2.<page:param name=""/>
解析一个属性到装饰器,这个属性会覆盖原有页面中的的属性,此标签只能用于<page:applyDecorator>标签内部
name:指定哪个属性的值要被重写
sitemesh jar下载页面:http://www.opensymphony.com/sitemesh/download.action
官方例子下载页面:http://www.opensymphony.com/sitemesh/download.html