<ui:composition> 指定使用哪个模版文件,然后通过 <ui:define> 对模版文件中每个可供插入的“ <ui:insert> 锚点”进行定义。 在运行期,具体的内容将会被插入到 <ui:composition> 中定义的锚点位置。
和 ui:component 一样,这个标签以外的内容将被编译器忽略 , 不会显示在视图中 , 和 ui:component 不同的是, ui:composition 不会在组件树上创建节点。
这里以及这里以前的内容将被忽略
<ui:composition>
<h:outputText value="#{bird.lifeExpectancy}" />
</ui:composition>
这里以及这里后的内容将被忽略
例如 :
<ui:composition template="bird-template.xhtml">
<ui:define name="title">Input Name</ui:define>
<ui:define name="summary">
<h:panelGrid columns="2">
<h:outputText value="Bird Name"/>
<h:outputText value="#{bird.name}"/> 34 Facelets Essentials
<h:outputText value="Life expectancy"/>
<h:outputText value="#{bird.lifeExpectancy}"/>
</h:panelGrid>
</ui:define>
</ui:composition>
这样 composition 标签内的内容按 bird-template.xhtml 模板文件的定义显示 , 模板文件中中必须有 <ui:insert name="title"> 和 <ui:insert name="summary"> 的定义。
创建一个组合视图主要使用 ui:composition, ui:define 和 ui:insert 标签。
ui:define 标签用于将命名的内容插入到模板中 , 它在模板标签(如 composition 和 decorate )的内部使用。 Define 的 name 属性必须和目标模板中 ui:insert 标签的 name 属性一致。
<ui:decorate> 标签和 <ui:composition> 标签相似,唯一不同的是它不忽略标签外部的内容。
ui:insert 标签用来在模板中指定一个插入点,可以被客户端模板中 ui:define 定义的内容所代替。
<ui:decorate template="box-template.xhtml">
<ui:define name="header">
Happy Parrot
</ui:define>
this will be removed
<ui:define name="content">
How many parrots do you want?
</ui:define>
</ui:decorate>
举例 2:
Listing 1-12. define-template.xhtml
<h:outputText value="Which bird sings like this? "/>
<ui:insert name="song"/>
define-example.xhtml
This will be ignored
<ui:composition template="define-template.xhtml">
<ui:define name="song">
<h:outputText value="cock-a-doodle-doo"/>
</ui:define>
</ui:composition>
分享到:
相关推荐
通常,这需要在项目的类路径中添加相应的jar,配置web.xml以启用Facelets和Ajax4jsf,然后在Facelets页面中使用Ajax4jsf的组件和行为。 6. **开发实践**:在实际开发中,开发者可以通过JSF的Managed Beans定义业务...
1. **模板语言**:Facelets使用XML语法,提供了一种声明式的方式来创建和组织用户界面组件。这种模板驱动的方法使得代码更加清晰和易于维护。 2. **直接组件绑定**:Facelets允许直接在页面上声明和引用JSF组件,...
7. **Facelets模板和组件**: Facelets的模板系统允许创建可重用的布局和组件,提高了代码的复用性和一致性。开发者可以创建一个母版页,然后在子页面中继承和扩展。 8. **整合其他技术**: JSF可以与其他Java EE技术...
在 JavaServer Faces (JSF) 2.0 中,Facelets 取代 JavaServer Pages (JSP) 成为默认的视图声明语言 (VDL)。有了 Facelets,您不需要像以前...在 Web 应用程序中使用 Facelets 的部分好处包括模板化、重用和易于开发。
3. **页面模板与组件**:Facelets 提供了一种基于 XML 的模板语言,允许你在 `template.xhtml` 中定义页面布局,然后在其他页面如 `guess.xhtml` 和 `response.xhtml` 中使用 `<ui:include>` 或 `<ui:insert>` 指令...
Facelets 是一种用于构建用户界面的视图技术,主要在JavaServer Faces (JSF) 应用程序中使用。它提供了声明式的方式去定义页面结构和逻辑,使得开发者能够更高效地创建和维护Web应用程序的前端。在这个"facelets_...
- Facelets模板允许开发者创建可重用的页面布局和设计元素。通过定义模板和模板客户,可以实现代码复用,提高开发效率。 3. **Facelets表达式语言(EL)** - EL是Facelets中用于访问应用程序上下文数据的简便语法。...
项目可能包括源代码、配置文件以及相关的文档,可以帮助开发者更好地理解和实践Facelets、JSF、PrimeFaces、Spring集成以及JSTL的使用。通过深入研究这些文件,你可以学习到如何构建一个完整的、高效的Java Web应用...
- **组件库(Component Library)**: Facelets可以使用JSF的内置组件,也可以添加第三方组件库,如PrimeFaces或RichFaces。 - **EL(Expression Language)**: Facelets与EL紧密集成,可以方便地访问后台Bean的...
JSF的核心是组件模型,允许开发者通过使用可重用的UI组件来构建页面。JSF 1.2带来了许多增强的功能,包括对AJAX的支持、更多的内置组件和改进的事件处理机制。 **MyFaces 1.2.7** 是JSF的一个开源实现,由Apache...
不同于早期 JSF 使用的 JSP(Java Server Pages),Facelets 提供了更为强大的模板处理能力,以及对组件树结构的直观管理,这使得开发者能够以更高效、更整洁的方式构建用户界面。 #### 二、Facelets 的核心优势:...
在这个"jsf2.1demo"压缩包中,很可能是包含了一些示例项目、源代码、配置文件以及相关的说明文档,帮助学习者一步步理解如何在Eclipse环境中搭建JSF 2.1应用,如何创建和使用Facelets模板,如何处理表单提交,以及...
JSF提供了一个丰富的组件库,如输入字段、按钮、表格、数据列等,这些组件可以直接在Facelets模板中使用。此外,还有第三方库如PrimeFaces、RichFaces和ICEfaces等,它们提供了更多功能和更美观的UI组件。 **JSF与...
4. **简化标记语言**:Facelets使用了一种更为简洁的XML方言,使得HTML与JSF组件的结合更加自然,减少了代码量,提高了开发效率。 ### 《Facelets Essentials》的内容概览 本书《Facelets Essentials》深入讲解了...
提供的压缩包文件很可能包含了实现这一功能的完整代码示例,包括JSF的配置文件(faces-config.xml)、Facelets模板文件(.xhtml)、Java后台bean(用于处理请求和业务逻辑)以及可能的样式表(CSS)和脚本...
此外,JSF还支持Facelets作为默认的视图层技术,Facelets使用XML语法定义用户界面,可以轻松地与JavaServer Pages (JSP) 或其他模板技术集成。 JSF组件库通常包含一系列内置组件,例如文本字段、按钮、表格等,...
Facelets是JSF的标准视图描述语言,它允许开发人员使用XML或XHTML来创建模板化的用户界面。Facelets支持重用组件、模板和组件组合,使得页面结构更清晰,易于维护。 **5. Managed Beans** Managed Beans是JSF中的...
2. **视图(View)**:JSF使用Facelets作为默认的视图表示技术,这是一种基于XML的模板语言,允许开发者创建和组合组件,形成用户界面。 3. **控制器(Controller)**:JSF通过生命周期管理请求,自动处理用户的...