`
yourenyouyu2008
  • 浏览: 287658 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

facelets概述

阅读更多

 

这是两篇详细介绍facelets功能的文章

http://www.ibm.com/developerworks/cn/java/j-facelets/

http://www.ibm.com/developerworks/cn/java/j-facelets2.html

 

jsf是种页面组件技术,它将一个页面组装成一个以rootview为根的组件树,当我们访问一个页面时jsf框架会去生成或恢复该页面的组件树。组件树如何创建却不是jsf框架的职责,jsf默认实现使用jsp来创建组件,可以通过jsf的配置文件来使用其他的技术,比如Facelets.

<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>

 

Facelets特性 

Facelets 有以下吸引人的特性:

模板化(像 Tiles)

复合组件

定制的逻辑标记

表达式语言

对设计师友好的页面开发

创建组件库

 

 

其中的 “复合组件” 和“创建组件库”让我们定义自己的组件简便了很多,并且组件的重用性得到了很大的提升。

 

详细的讲解上面两篇文章中说的很详细,这里只给些补从。

1)例子文件中用到的$和#表达式功能相同,可以相互替换 ,不知道是不是在任意页面$和#都是等价的。

2)facelets可以将多种东西当做组件来使用,比如一个xhtml文件、component、 validator等

下面的文件描述了它支持的组件类型

facelet_taglib_1_0.dtd 的文件

<!ELEMENT facelet-taglib (library-class|(namespace,(tag|function)+))>

<!ATTLIST facelet-taglib xmlns CDATA #FIXED "http://java.sun.com/JSF/Facelet">

<!ELEMENT namespace (#PCDATA)>

<!ELEMENT library-class (#PCDATA)>

<!ELEMENT tag (tag-name,(handler-class|component|converter|validator|source))>

<!ELEMENT tag-name (#PCDATA)>

<!ELEMENT handler-class (#PCDATA)>

<!ELEMENT component (component-type,renderer-type?,handler-class?)>

<!ELEMENT component-type (#PCDATA)>

<!ELEMENT renderer-type (#PCDATA)>

<!ELEMENT converter (converter-id, handler-class?)>

<!ELEMENT converter-id (#PCDATA)>

<!ELEMENT validator (validator-id, handler-class?)>

<!ELEMENT validator-id (#PCDATA)>

<!ELEMENT source (#PCDATA)>

<!ELEMENT function (function-name,function-class,function-signature)>

<!ELEMENT function-name (#PCDATA)>

<!ELEMENT function-class (#PCDATA)>

<!ELEMENT function-signature (#PCDATA)>

 

下面是我们自定义的组件

<tag>

<tag-name>validateDoubleRange</tag-name>

<source>validator_DoubleRange.xhtml</source>

</tag>

<tag>

<tag-name>validateCompare</tag-name>

<validator>

<validator-id>trackway.validator.compare</validator-id>

</validator>

</tag>

<tag>

<tag-name>addValidatorMessage</tag-name>

<handler-class>

trackway.twid09.common.tag.AddValidatorMessageHandler

</handler-class>

</tag>

<tag>

<tag-name>rating</tag-name>

<component>

<component-type>javax.faces.SelectOne</component-type>

<renderer-type>javax.faces.Rating</renderer-type>

</component>

</tag>
<tag>
<tag-name>requiredFieldValidator</tag-name>
<component>
<component-type>net.sf.jsfcomp.clientvalidators.requiredfieldvalidator</component-type>
</component>
</tag>

为什么要这样做呢? 原因是我们不能直接在xhtml文件中使用jsp tag,比如我们自定义了一个验证组件regularExpressionValidator,按照jsf的验证规范,验证组件是很容易写的,如果我们使用jsp的话,我们还要做的一项工作就是再实现个jsp tag,可我们使用了facelets时却不能直接使用jsp的tag,这时就需要我们定义在facelets中使用的tag,相比较来说使用facelets比使用jsp的开发工作要小的多。

<tag>

<tag-name>validateRegularrxpression</tag-name>

<validator>

<validator-id>trackway.validator.regularrxpression</validator-id>

</validator>

</tag>
还有个例子就是我们使用了一个jsf的客户端验证组件clientvalidators-0.9.1.jar,但它却不能直接在xhtml中使用,


通过如下的定义就可以很容易的将clientvalidators集成到facelets中

<tag>

<tag-name>requiredFieldValidator</tag-name>

<component>

<component-type>net.sf.jsfcomp.clientvalidators.requiredfieldvalidator</component-type>

</component>

</tag>

<tag>

<tag-name>rangeValidator</tag-name>

<component>

<component-type>net.sf.jsfcomp.clientvalidators.rangevalidator</component-type>

</component>

</tag>

分享到:
评论

相关推荐

    facelets源码包

    1. **Facelets 概述** - Facelets 是JSF的默认视图层技术,替代了之前的JSP。 - 它基于XML,支持模板和重用,使得UI设计更加灵活和模块化。 - Facelets 使用`.xhtml`文件扩展名,可以嵌入JavaServer Faces组件和...

    facelets example program 编程 例子 JavaJazzUp.pdf

    Java JazzUp 内容概述 - **简化复杂技术**:文档中提到,本期 JavaJazzUp 特别关注如何将复杂的 Java 技术(如 JBoss AS、Hibernate 3.0、Ant 工具、Struts 2、JSF 和设计模式)进行简化,使之更容易被新手程序员...

    JSP入门(01概述02预备知识...)

    2. Facelets:JSF的视图表示技术,用XML定义组件和布局。 3. JSF组件模型:通过UIComponent和FacesComponent实现组件化开发。 4. Managed Beans:作为业务逻辑层的载体,与JSF页面交互。 综上所述,JSP入门教程涵盖...

    核心_JSF_编程, 核心_JSF_编程

    **JSF(JavaServer Faces)概述** JSF是Java平台上的一个官方标准,全称为JavaServer Faces,由Sun Microsystems(现已被Oracle收购)开发并维护。它是一个用于构建用户界面的MVC(Model-View-Controller)框架,...

    推荐经典《JSF入门》简体中文版教程

    一、JSF框架概述 JSF作为Java EE的一部分,提供了MVC(Model-View-Controller)架构,帮助开发者构建可维护、可扩展的Web应用程序。JSF的核心组件包括Facelets、Managed Beans、UI Components、Event处理和...

    JSF sample

    **JSF(JavaServer Faces)概述** JSF(JavaServer Faces)是Java平台上的一个用于构建用户界面的组件模型框架,由Java Community Process (JCP)制定并维护。它为开发人员提供了一种构建Web应用程序的高效方法,...

    An introduction to RichFaces

    #### RichFaces概述 RichFaces是由JBoss社区开发并维护的一个开源项目,它提供了一系列高级UI组件,这些组件不仅具备丰富的视觉效果,还能轻松实现复杂的客户端操作,如拖放、树形菜单、模态对话框等。RichFaces...

    JSF MyFaces 开发文档

    #### 二、JSF Web Apache MyFaces概述 - **Apache MyFaces 1.2**:本版本是Apache MyFaces的一个重要版本,提供了对JSF 1.2规范的支持。它包括了许多新特性,如增强的Ajax支持、更好的国际化支持以及更灵活的配置...

    \jsf编程1.zip

    **JSF框架概述**: JSF是一个MVC(Model-View-Controller)框架,它简化了开发Java Web应用程序的过程。它通过提供预定义的UI组件、事件处理机制和生命周期管理来实现这一点。JSF的核心组件包括Facelets,它是用于...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版) 1/2

    使用Facelets视图声明语言、托管bean和JSF表达式语言(EL)。按照JSF导航模型声明一个页面,包括新的“隐式导航”功能。使用用户界面组件模型和JSF事件模型,包括支持可添加书签的页面以及POST、REDIRECT、GET模式。...

    Java.Server.Faces编程

    1. JSF架构概述 JSF的核心组件包括UI组件、事件处理、数据绑定、生命周期管理等。UI组件是用户界面的基础,如按钮、输入框等,它们通过XML格式的Facelets进行定义和配置。事件处理允许用户交互时触发特定的动作,而...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版).part1

    使用Facelets视图声明语言、托管bean和JSF表达式语言(EL)。按照JSF导航模型声明一个页面,包括新的“隐式导航”功能。使用用户界面组件模型和JSF事件模型,包括支持可添加书签的页面以及POST、REDIRECT、GET模式。...

    JSF中文教程,入门的初级教程

    JSF概述 JSF的核心思想是组件模型,它将UI元素视为可复用的组件,开发者可以通过声明式的方式配置这些组件,并将它们与后台业务逻辑关联。JSF框架负责处理用户请求,更新组件状态,以及生成响应到客户端。 ### 2....

    JavaServer.Faces.3rd.Edition

    #### 一、概述 JavaServer Faces(简称JSF)是Java平台企业版(Java EE)中用于构建Web用户界面的标准技术。它提供了一个强大的框架来开发服务器端应用,支持开发者清晰地将视觉呈现与业务逻辑分离。JSF 2.0是一次...

    JSF入门(Word版)

    1. **JSF概述**: JSF是由Sun Microsystems(现Oracle公司)开发的开源框架,主要用于简化Java Web应用的开发。它提供了一种声明式编程模型,使得开发者可以更加关注业务逻辑,而不是底层的HTML渲染和用户交互处理...

    JSF1.2.07版源代码

    1. **JSF架构概述** JSF由多个组件构成,包括视图层、模型层、控制层和服务层。源代码中包含的组件如Facelets、UIComponent、Managed Beans等,都是实现这些层的关键部分。Facelets作为默认的视图描述语言,简化了...

    jsf2

    ### JSF 2.0概述 JSF 2.0 是在JSF 1.x基础上的一次重大升级,它引入了诸如Facelets作为默认视图描述语言、组件库增强、依赖注入和异步请求处理等关键特性。这些改进使得JSF更加现代化,与Java EE 6标准相融合,提高...

    jsf1.1基础环境平台

    **一、JSF概述** JSF的核心理念是将用户界面分解为可重用的组件,这些组件可以像积木一样组合起来构建复杂的页面。每个组件都有自己的生命周期和状态管理,这大大简化了Web开发过程。JSF 1.1 在设计时强调了MVC...

    《JSF入门》简体中文版

    JSF概述 JSF是Java Community Process(JCP)制定的标准,其设计目标是简化Java Web应用的开发。它通过提供一系列可重用的UI组件和声明式绑定,让开发者能够以更直观的方式构建Web应用。JSF的核心概念包括组件、...

Global site tag (gtag.js) - Google Analytics