张惠妹再变胖:Facelets 标签参考 1
来源:百度文库 编辑:偶看新闻 时间:2024/04/27 15:07:46
Facelets 标签参考 1 -grule
lxm翻译自《Facelets Essentials: Guide to JavaServer? Faces View Definition Framework 》
不当之处欢迎指正。
表格 1-4:
属性名称
必需
描述
id
否
和所有的组件一样,可以这它提供一个 id, 如果没有设置, Facelets 将按照 JSF 的规则为它创建一个。
binding
否
按照 JSF 的规范 , 这个属性的作用是通过指向 Managed Bean 的一个属性来引用 UIComponet 的实例 , 如果 Managed Bean 的这个个属性没有事先初始化, UIComponet 实例将惰性 (lazily) 被创建 .
这个标签以外的内容将被编译器忽略 , 因此不会显示在视图中。
这里以及这里以前的内容将被忽略
这里以及这里后的内容将被忽略
产生的 Html 输出为:
The directory contains #{totalBirds} birds!
表格 :
属性名称
必需
描述
id
否
和所有的组件一样,可以这它提供一个 id, 如果没有设置, Facelets 将按照 JSF 的规则为它创建一个。
binding
否
按照 JSF 的规范 , 这个属性的作用是通过指向 Managed Bean 的一个属性来引用 UIComponet 的实例 , 如果 Managed Bean 的这个个属性没有事先初始化, UIComponet 实例将惰性 (lazily) 被创建 .
举例:
This will not be ignored
This will not be ignored
产生输出:
This will not be ignored
This will not be ignored
表格 1-5:
属性名称
必需
描述
template
否
将在标签开始和结束之间显示的模板文件所在的路径
和 ui:component 一样,这个标签以外的内容将被编译器忽略 , 不会显示在视图中 , 和 ui:component 不同的是, ui:composition 不会在组件树上创建节点。
这里以及这里以前的内容将被忽略
这里以及这里后的内容将被忽略
例如 :
这样 composition 标签内的内容按 bird-template.xhtml 模板文件的定义显示 , 模板文件中中必须有
创建一个组合视图主要使用 ui:composition, ui:define 和 ui:insert 标签。
表格 1-6 列出它的属性。
表格 1-6:
属性名称
必需
描述
template
否
将在标签开始和结束之间显示的模板文件所在的路径
例子:
Listing 1-10. box-template.xhtml
"http://www.w3.org/TR/xhtml1/DTD/ ?
xhtml1-transitional.dtd">
xmlns:ui="http://java.sun.com/jsf/facelets"> 36 Facelets Essentials
Listing 1-11. decorate-example.xhtml
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/ ?
xhtml1-transitional.dtd">
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
These are the birds in today's menu:
Happy Parrot
How many parrots do you want?
Mighty Eagle
Eagles are not available now.
html 输出内容 :
These are the birds in today's menu:
Happy Parrot
How many parrots do you want?
type="text" value="3" />
Mighty Eagle
Eagles are not available now.
ui:define 标签用于将命名的内容插入到模板中 , 它在模板标签(如 composition 和 decorate )的内部使用。 Define 的 name 属性必须和目标模板中 ui:insert 标签的 name 属性一致。表格 1-7 列出它的属性。
表格 1-7:
属性名称
必需
描述
name
是
必须和目标模板中 ui:insert 标签的 name 属性一致
举例 1:
Happy Parrot
this will be removed
How many parrots do you want?
define 标签内部的内容将被插入到目标模板中 name 相同的 insert 标签处。 define 标签外部的内容将被忽略。
举例 2:
Listing 1-12. define-template.xhtml
define-example.xhtml
This will be ignored
这个例子输出 :
Which bird sings like this? cock-a-doodle-doo
ui:insert 标签用来在模板中指定一个插入点,可以被客户端模板中 ui:define 定义的内容所代替。 表格 1-8 列出它的属性。
表格 1-8:
属性名称
必需
描述
name
否
用来和客户端模板中 ui:define 标签的 name 属性相一致 , 如果没有指定,整个客户端模板将被插入。
如果模板中某个 insert 标签在客户端模板中没有定义对应的 define ,则使用模板中的默认值。
Listing 1-13. insert-template.xhtml
"http://www.w3.org/TR/xhtml1/DTD/ ?
xhtml1-transitional.dtd">
xmlns:ui="http://java.sun.com/jsf/facelets">
No title
No content is defined
我们需要一个客户端模板 , 如下:
Listing 1-14. insert-client.xhtml
The Parrot Quest
我们只定义了 title 的内容,所以 content 使用默认值。输出如下:
The Parrot Quest
No content is defined
name 属性是可选的,如果没有被指定,整个客户端模板将被插入。也没必须要客户端模板定义 define 。如下:
Listing 1-15. insert-template2.xhtml
"http://www.w3.org/TR/xhtml1/DTD/ ?
xhtml1-transitional.dtd">
xmlns:ui="http://java.sun.com/jsf/facelets">
One story of Birds
Listing 1-16. insert-client2.xhtml
One day I decided to start counting
the number of parrots in the world,
just to find that...
输出如下:
One story of Birds
One day I decided to start counting
the number of parrots in the world,
just to find that...
表格 :
属性名称
必需
描述
src
是
属性的值可以是简单的值或是 EL 表达式,用来指定被包含的 Faclets 文件的位置 , 可以是相对路径也可以是绝对路径。
举例:
http://www.javaeye.com/post/628412 原文
hxzon:facelets6个模板标签,4个非模板标签,分别为
composition,decorate,define,insert,include,param,,,
component,fragment,remove,debug。(模板文件,模板客户文件)。