`

Practical_RichFaces要点Chapter03

阅读更多
本章主要包括三方面内容:

· 发送 Ajax Request

· 实现 Partial-Page 更新

· 了解什么数据将会被 process

 

 

1.       发送 Ajax Request

 

1)  四个 RichFaces 控件可以发送 Ajax Request 并允许 Partial-Page 更新

• <a4j:commandLink>

• <a4j:commandButton>

• <a4j:support>

• <a4j:poll>

 

2)  <a4j:commandLink> 与 <a4j:commandButton>

与标准的 <h:commandLink> 与 <h:commandButton> 非常相似,增加的功能:

• reRender 属性,用于指定哪些控件需要 Partial-Page 更新;

• 对于 Partial-Page 更新, action 方法的返回值应为 null 。 Response 将被用来更新 Browser 的 DOM 。

 

3)  <a4j: support>

• <a4j: support> 应该作为标准 JSF 控件的直接子控件( Direct Child )来使用。

• 关键属性 event ,用来指定哪个 DHTML event 将会引发 Ajax Request 。(实际上, <a4j:commandLink> 与 <a4j:commandButton> 是使用了“ onClick ” DHTML event 来引发 Ajax Request 。

• 至于能够指定哪些 DHTML 事件,取决于父控件能够支持哪些。

• 当在页面上混合使用 <a4j: support> 和 JavaScript 代码时,有可能导致不确定的结果,因为 JavaScript 代码有可能比 <a4j: support> “抢占先机”。

• 可以同时组合使用多个 <a4j:support> 以分别应对不同的 DHTML event ,比如 onClick 、 onkeyup 、 onkeydown 等。

 

4)  <a4j:poll>

• interval          指定多长时间向 Server 发送一次 Ajax Request ;

• enabled          是否启动自动发送 Ajax Request 功能;

• reRender              页面的哪些控件(部分)要被刷新;

将 <a4j:poll> 放置在一个独立的 form 里,这样在发送 Request 的时候,其他 form 里面的 Field 将不会被发送。

 

5)  limitToList 属性

• 能够引发 Ajax Request 的四种控件都有 limitToList 这个属性;

• 当 limitToList 设为 true 的时候,只有当前控件的 reRender 里面的控件会被刷新;

• 即使 <a4j:outputPanel ajaxRendered=”true”> 也不会被刷新。

 

 

2.       实现 Partial-Page 更新

 

1)  两种方法:

• reRender 属性

• <a4j:outputPanel ajaxRendered=”true”>

 

2)  使用 reRender 属性

• 通常是逗号分隔的 ID 列表;

• 当 reRender 指向一个容器类控件的时候,该容器控件中的子控件也将被刷新;

• 接受 EL 表达式,如 #{profile.renderList} ,以实现 reRender 控件列表的动态刷新;

• 接受 4 种格式: Set 、 List 、 String[] 、 String (逗号分隔 ID 列表)。

 

【注意】

EL 表达式只在 Render Response 阶段之前被解析,也就意味着,可以在 action 或 actionListener 里更新 reRender 控件列表。

通常情况下,页面里的 EL 表达式应该在 Update Model Value 阶段被解析( Update Model Value 阶段在 Invoke Application 阶段之前)。而此处, EL 表达式只在 Render Response 阶段之前被解析( Render Response 阶段在 Invoke Application 阶段之后),也就留给我们机会在 Invoke Application 阶段的 action 或 actionListener 里对 reRender 控件列表进行修改。如修改 #{profile.renderList} 里面的的 renderList 集合对象。

 

3)  使用 <a4j:outputPanel>

• <a4j:outputPanel> 与 <h:panelGroup> 很相似,是一个容器类的控件;它的 ID 也可以被添加到其他控件的 reRender 属性里。

• 当 <a4j:outputPanel> 的 ajaxRendered 属性被设为 true ,则其内部的控件总会被刷新。

 

 

3.       了解什么数据将会被 process

 

1)  使用 <a4j:region>

• 可以使用 <a4j:region> 来指定哪些控件将被 process ( Process 包括解码 decoding 、转换 conversion 、验证 validation 、更新模型值 model updating );

• 请注意,整个 Form 还是会被提交,只是在 region 中的控件会被 process ;

• 如果未指定 region ,则整个页面将作为一个 region ,也就意味着整个 form 被 process ;

• 对于嵌套 region ,当外部 region 里的 ajax 控件引发 Request 的时候,内部 region 里的控件也将一起被 process ;而当内部 region 里的 ajax 控件引发 Request 的时候,外部 region 里的控件则不会随之一起 process ;

 

【注意】切勿将 process 和 reRender 相混淆

<a4j:region> 只是表明哪些控件被 process (解码 decoding 、转换 conversion 、验证 validation 、更新模型值 model updating );而 Partial-Page 刷新还是得靠 reRender 和 <a4j:outputPanel> 负责。两者之间,概念不同。

 

2)  使用 ajaxSingle 属性

• 将 ajaxSingle 属性设为 true ,等同于将单个控件包装在 <a4j:region> 中。如:

<h:inputText value="#{profile.age}">

<a4j:support event="onblur" reRender="userInfo" ajaxSingle="true">

</h:inputText>

等同于

<a4j:region>

<h:inputText value=”#{profile.age}”>

<a4j:support event=”onblur” reRender=”userInfo”>

</h:inputText>

</a4j:region>

 

• 对于单独的 <a4j:commandButton> 或 <a4j:commandLink> , ajaxSingle 也可以设为 true ,也就是只有这个控件被 process 。

 

3)  使用 process 属性

• process 属性用于设置 region 外的控件随 region 内的控件一起 process ;

• 接受 4 种格式: Set 、 List 、 String[] 、 String (逗号分隔 ID 列表)。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gengv/archive/2009/06/05/4246420.aspx
分享到:
评论

相关推荐

    usersrc.rar_jsf richfaces_richfaces_办公 Java

    《Java JSF Richfaces在办公自动化系统中的应用详解》 在现代企业信息化建设中,办公自动化系统的开发与应用已经成为提升工作效率、实现管理现代化的关键。本文将深入探讨如何利用Java、JSF(JavaServer Faces)...

    JBoss_RichFaces_3.3

    ### JBoss RichFaces 3.3:增强JSF Web应用程序的强大力量 #### 引言 《JBoss RichFaces 3.3》是一本专为希望利用强大的AJAX组件来增强JSF(JavaServer Faces)Web应用的开发人员而编写的书籍。作者Demetrio ...

    j-richfaces4.zip_richfaces4 demo

    dwRichFaces4Demo1 示例应用程序很简单;其惟一的真正目的是展示所选组件的设置和用法。因此,它的作用便是收集和显示输入数据。请想象一下如何在生产应用程序中使用数据和组件。除了必要的 JAR、图像、支持资源绑定...

    Practical RichFaces

    《Practical RichFaces》这本书深入探讨了如何在JavaServer Faces (JSF) 应用程序中有效地使用RichFaces框架,从而实现高效的AJAX功能。 RichFaces是一个强大的JSF组件库,它极大地扩展了JSF的功能,特别是在提升...

    Practical_JBoss_Seam书的源代码

    《Practical JBoss Seam》是一本深入探讨JBoss Seam框架技术的书籍,其源代码包含在提供的压缩包中。Seam是一种开源的企业级Java框架,它整合了多种技术和概念,如JavaServer Faces (JSF)、Java Persistence API ...

    Practical RichFaces, 2nd Edition

    《Practical RichFaces, 2nd Edition》是一本专注于JavaServer Faces (JSF)及其增强库RichFaces的实用指南。本书旨在帮助开发者深入了解并充分利用JSF和RichFaces的强大功能,特别是在Web应用程序开发领域。随着技术...

    RichFaces_3.3.3标签库手册

    RichFaces_3.3.3_TLD.chm

    richfaces_helloWorld

    **标题解析:** "richfaces_helloWorld" 这个标题暗示了我们正在处理一个与RichFaces框架相关的示例项目,具体来说是一个“Hello World”应用。RichFaces是基于JavaServer Faces (JSF) 技术的开源用户界面组件库,...

    richfaces_usersguide 3.3

    《深入解析RichFaces 3.3用户指南:框架精髓与实战应用》 一、引言:RichFaces框架概览 RichFaces 3.3作为一款先进的企业级开发框架,为开发者提供了丰富的组件库以及强大的皮肤支持,极大地提升了Web应用程序的...

    richfaces_reference.pdf

    ### RichFaces框架知识点详解 #### 一、简介 RichFaces是一款功能强大的开源JavaScript库与Java Server Faces (JSF) 集成的组件库,它提供了丰富的用户界面组件以及Ajax支持,大大简化了Web应用程序的开发过程。此...

    Richfaces ShowCase离线包

    **Richfaces ShowCase离线包** 是一个专为开发者设计的资源包,它包含了Richfaces框架的演示示例,能够帮助用户在没有网络连接的情况下也能深入理解和学习Richfaces的功能和用法。这个离线包特别适合那些需要在本地...

    RichFaces4.5 JavaApi JSApi

    RichFaces 4.5 是一个强大的JavaServer Faces (JSF) 框架的扩展库,专为构建富互联网应用程序(Rich Internet Applications, RIA)而设计。这个库提供了丰富的组件集,以及对JavaScript(JS)和Java API的支持,使得...

    richfaces中文开发文档

    **RichFaces中文开发文档概述** RichFaces是一款基于JavaServer Faces(JSF)技术的开源UI组件库,由JBoss组织开发。它为JSF应用程序提供了丰富的用户体验和强大的交互功能。这款框架极大地简化了Web开发过程,尤其...

    richfaces-ui-3.2.1

    《深入理解RichFaces UI 3.2.1在JBoss中的应用》 RichFaces UI 3.2.1是JBoss框架中一个重要的组件,它为开发人员提供了一套强大的AJAX(Asynchronous JavaScript and XML)功能,极大地提升了Web应用程序的交互性和...

Global site tag (gtag.js) - Google Analytics