SiteMesh和FreeMarker.docx
- 文档编号:2143592
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:24
- 大小:125.28KB
SiteMesh和FreeMarker.docx
《SiteMesh和FreeMarker.docx》由会员分享,可在线阅读,更多相关《SiteMesh和FreeMarker.docx(24页珍藏版)》请在冰豆网上搜索。
SiteMesh和FreeMarker
Sitemesh与Freemarker简介
本文有哪些主要内容及目的
Sitemesh与Freemarker简介。
目录
SiteMesh简介5
应用siteMesh方法:
6
一、在WEB-INF/web.xml中copy以下filter的定义:
6
二、copy所需sitemesh-2.3.jar到WEB-INF\lib下。
6
三、建立WEB-INF/decorators.xml描述各装饰器页面。
6
四、建立装饰器页面/decorators/main.jsp6
五、建立一个的被装饰页面/index.jsp(内容页面)7
装饰器decorator概念8
FreeMarker简介10
(1)模板+数据模型=输出11
(2)数据模型13
(3)模板14
4、杂项16
(1)用户定义指令16
(2)在模板中定义变量20
(3)名字空间21
Sruts2.X对siteMesh和FreeMarker的支持22
SiteMesh简介
sitemesh应用Decorator模式,用filter截取request和response,把页面组件head,content,banner结合为一个完整的视图。
通常我们都是用include标签在每个jsp页面中来不断的包含各种header,stylesheet,scriptsandfooter,现在,在sitemesh的帮助下,我们可以开心的删掉他们了。
如下图,你想轻松的达到复合视图模式。
应用siteMesh方法:
一、在WEB-INF/web.xml中copy以下filter的定义:
xmlversion="1.0"encoding="GBK"?
>
xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation=" version="2.4"> 二、copy所需sitemesh-2.3.jar到WEB-INF\lib下。 三、建立WEB-INF/decorators.xml描述各装饰器页面。 上面配置文件指定了装饰器页面所在的路径(/decorators),并指定了一个名为main的装饰器,该装饰器默认装饰web应用根路径下的所有页面。 四、建立装饰器页面/decorators/main.jsp <%@pagecontentType="text/html;charset=GBK"%> <%@tagliburi="prefix="decorator"%>
titledefault="装饰器页面..."/>
head/>
sitemesh的例子
body/>
chen56@
五、建立一个的被装饰页面/index.jsp(内容页面)
<%@pagecontentType="text/html;charset=GBK"%>
本页只有一句,就是本句.
最后访问index.jsp,将生成如下页面:
而且,所有的页面也会如同index.jsp一样,被sitemesh的filter使用装饰模式修改成如上图般模样,却不用再使用include标签。
装饰器decorator概念
sitemesh通过filter截取request和response,并给原始的页面加入一定的装饰(可能为header,footer...),然后把结果返回给客户端,并且被装饰的原始页面并不知道sitemesh的装饰,这也就达到了脱耦的目的。
除了要copy到WEB-INF/lib中的sitemesh.jar外,还有2个文件要建立到WEB-INF/:
_sitemesh.xml(可选)
_decorators.xml
sitemesh.xml可以设置2种信息:
PageParsers:
负责读取stream的数据到一个Page对象中以被SiteMesh解析和操作。
(不太常用,默认即可)
DecoratorMappers:
不同的装饰器种类,2种比较有用都列在下面。
一种通用的mapper,可以指定装饰器的配置文件名,另一种可打印的装饰器,可以允许你当用http:
//localhost/aaa/a.html?
printable=true方式访问时给出原始页面以供打印(免得把header,footer等的花哨的图片也搭上)
范例:
decorators.xml:
定义构成复合视图的所有页面构件的描述(主要结构页面,header,footer...),如下例:
_defaultdir:
包含装饰器页面的目录
_page:
页面文件名
_name:
别名
_role:
角色,用于安全
_webapp:
可以另外指定此文件存放目录
_Patterns:
匹配的路径,可以用*,那些被访问的页面需要被装饰。
最重要的是写出装饰器本身(也就是那些要复用页面,和结构页面)。
其实,重要的工作就是制作装饰器页面本身(也就是包含结构和规则的页面),然后把他们描述到decorators.xml中。
让我们来先看一看最简单的用法:
其实最常用也最简单的用法就是我们的hello例子,
<%@pagecontentType="text/html;charset=GBK"%>
<%@tagliburi="prefix="decorator"%>
titledefault="装饰器页面..."/>
head/>
sitemesh的例子
body/>
我们在装饰器页面只用了2个标签:
titledefault="装饰器页面..."/>: 把请求的原始页面的title内容插入到
body/>: 把请求的原始页面的body内的全部内容插入到相应位置。 然后我们在decorator.xml中加入以下描述即可: 这样,请求的所有页面都会被重新处理,并按照main.jsp的格式重新展现在你面前。 FreeMarker简介 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 ●FreeMarker被设计用来生成HTMLWeb页面,特别是基于MVC模式的应用程序 ●虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图) ●FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件 ●FreeMarker与容器无关,因为它并不知道HTTP或Se
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SiteMesh FreeMarker