SiteMesh页面布局修饰框架

1. SiteMesh是一个Web页面布局修饰框架, 用于构建包含大量页面, 需要一致的外观样式(look/fell), 导航和布局机制的大型网站.
SiteMesh
应用Decorator模式,用filter截取requestresponse,把页面组件head,content,banner结合为一个完整的视图。通常我们都是用include标签在每个jsp页面中来不断的包含各种header, stylesheet, scripts and footer,现在,在SiteMesh的帮助下,我们可以开心的删掉他们了。在WebWork中集成SiteMesh相当容易: 实际上什么也不用做. WebWork把全部值栈数据都保存在请求attribute, 这意味着如果想显示值栈(ActionContext)中的数据, 只需使用WebWork附带的标准标签库, 就这么简单!内含学习文档和完整例子。

2. 更改WEB-INF/web.xml的内容,如在xml的配置文件中不直接支持“<teglib></teglib>”的标签对,要把所有的标签对放到<jsp-config></jsp-config>

 

3SiteMesh使用下面的逻辑来选择使用哪一个装饰器:

(a)    页面是否使用meta装饰器标签(meta decorator tag)特别指定了一个装饰器?

(b)    页面是否是一个框架集(是的话则不应用装饰器)?

(c)    页面是否使用了printable=true 参数(是的话则使用打印装饰器)

(d)    页面时候使用装饰器文件名特别指定了一个装饰器?

(e)    页面是否匹配 decorators.xml 文件里描述的样式?

4Sitemesh的标签

Decorator Tags

Page Tags

被用于建立装饰器页面.

被用于从原始内容页面访问装饰器.

<decorator:head />
<decorator:body />
<decorator:title />
<decorator:getProperty />
<decorator:usePage />

<page:applyDecorator />
<page:param

(1)      <decorator:getProperty property="..." [ default="..." ] [ writeEntireProperty="..." ]/> 标签

在标签处插入原始页面(被包装页面)的原有的标签的属性中的内容,还可以添加一个缺省值。

注意,writeEntireProperty="true"会在插入内容前加入一个空格。

(2)      <decorator:usePage id="..." />标签

jsp页面中的<jsp:useBean>标签一样,可以使用被包装为一个Page对象的页面。 (懒的用)例:可用<decorator:usePage id="page" /> <%=page.getTitle()%>达到<decorator:title/>的访问结果。

(3)      <page:applyDecorator name="..." [ page="..." title="..." ] ><page:param name="..."> ...</page:param><page:param name="..."> ... </page:param></page:applyDecorator>标签

应用包装器到指定的页面上,一般用于被包装页面中主动应用包装器。

 

5中文问题

                          i.              在每一个jsp页里设置: <%@ page contentType="text/html; charset=gbk"%> 来告诉server你所要求的字符集。

                       ii.              在每个jsp页的head中定义:<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=gbk"> 来告诉浏览器你所用的字符集。

 

你可能感兴趣的:(框架,jsp,Web,浏览器,Webwork)