张惠妹再变胖:Facelets 标签参考 1

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 15:07:46

Facelets 标签参考 1 -grule

lxm翻译自《Facelets Essentials: Guide to JavaServer? Faces View Definition Framework 》

不当之处欢迎指正。

标签在 JSF 组件树中插入一个 UIComponet 实例,并作为所有它所包含的组件或内容片断的根节点。表格 1-4 列出它的属性。

表格 1-4: 标签属性

属性名称

必需

描述

id

和所有的组件一样,可以这它提供一个 id, 如果没有设置, Facelets 将按照 JSF 的规则为它创建一个。

binding

按照 JSF 的规范 , 这个属性的作用是通过指向 Managed Bean 的一个属性来引用 UIComponet 的实例 , 如果 Managed Bean 的这个个属性没有事先初始化, UIComponet 实例将惰性 (lazily) 被创建 .

这个标签以外的内容将被编译器忽略 , 因此不会显示在视图中。

这里以及这里以前的内容将被忽略

The directory contains #{totalBirds} birds!

这里以及这里后的内容将被忽略

产生的 Html 输出为:

The directory contains #{totalBirds} birds!

标签相似,不同的是 标签外部的内容不会被忽略。下列表格列出它的属性。

表格 : 标签属性

属性名称

必需

描述

id

和所有的组件一样,可以这它提供一个 id, 如果没有设置, Facelets 将按照 JSF 的规则为它创建一个。

binding

按照 JSF 的规范 , 这个属性的作用是通过指向 Managed Bean 的一个属性来引用 UIComponet 的实例 , 如果 Managed Bean 的这个个属性没有事先初始化, UIComponet 实例将惰性 (lazily) 被创建 .

标签在 JSF 组件树中插入一个 UIComponet 实例,并作为标签内部所有它所包含的组件或内容片断的根节点 , 标签外部的内容编译时会被包含进来。

举例:

This will not be ignored

This will not be ignored

产生输出:

This will not be ignored

I want 3 eagles.

This will not be ignored

标签是一个模板标签,它将一些可以被其它 Facelets 页面所包含的内容封装起来。表格 1-5 列出它的属性。

表格 1-5: 标签属性

属性名称

必需

描述

template

将在标签开始和结束之间显示的模板文件所在的路径

指定使用哪个模版文件,然后通过 对模版文件中每个可供插入的“ 锚点”进行定义。 在运行期,具体的内容将会被插入到 中定义的锚点位置。

和 ui:component 一样,这个标签以外的内容将被编译器忽略 , 不会显示在视图中 , 和 ui:component 不同的是, ui:composition 不会在组件树上创建节点。

这里以及这里以前的内容将被忽略

这里以及这里后的内容将被忽略

例如 :

Input Name

34 Facelets Essentials

这样 composition 标签内的内容按 bird-template.xhtml 模板文件的定义显示 , 模板文件中中必须有 的定义。

创建一个组合视图主要使用 ui:composition, ui:define 和 ui:insert 标签。

标签和 标签相似,唯一不同的是它不忽略标签外部的内容。

表格 1-6 列出它的属性。

表格 1-6: 标签属性

属性名称

必需

描述

template

将在标签开始和结束之间显示的模板文件所在的路径

例子:

Listing 1-10. box-template.xhtml

XHTML 1.0 Transitional//EN"

"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">

Decorate example

These are the birds in today's menu:

Happy Parrot

How many parrots do you want?


Mighty Eagle

Eagles are not available now.

html 输出内容 :

Decorate example

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

XHTML 1.0 Transitional//EN"

"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

HTML 1.0 Transitional//EN"

"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...


标签用来在文件中包含另外一个 Facelets 文件 , 它只需要指定被包含文件的位置。它可以包含任何拥有 ui:component 或 ui:composition 等标签或是简单的 XHTML 或 XML 代码片断的文件。下列表格列出它的属性。

表格 : 标签属性

属性名称

必需

描述

src

属性的值可以是简单的值或是 EL 表达式,用来指定被包含的 Faclets 文件的位置 , 可以是相对路径也可以是绝对路径。

举例:

http://www.javaeye.com/post/628412 原文
hxzon:facelets6个模板标签,4个非模板标签,分别为
composition,decorate,define,insert,include,param,,,
component,fragment,remove,debug。(模板文件,模板客户文件)。