RichFaces框架的基本概念架(1)

 说在前面:我的英文水平很低,翻译工作是拿着词典逐个词查这样进行的,翻译出来本来只是用来自己看的,但想到希望能对那些像我是JAVA及JSF的莱鸟有一定的帮助,所以把它放了上来。如有发现任何错误,请大家指点改正。

 

原文:http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/html/ArchitectureOverview.html

 

 

 

5章。RichFaces框架的基本概念架

5.1 介绍

该框架是一个能在现有的页面增加Ajax的功能的组件库,所以你不需要写任何JavaScript代码或用新的Ajax工具集(widget)取代现有的组件。RichFaces具有页面范围(page-wide)Ajax支持,而不是传统的组件范围(component-wide)ajax支持。 因此,您可以在页面上定义事件调用一个AJAX请求和根据客户端触发的事件产生一个Ajax请求改变服务端的数据后,以JSF组件树同步页面的区域。

下面的图片展示了它是如何工作的:

 

 

 

 

 5.1 请求处理流程

 

RichFaces可以定义(依靠JSF标签)希望通过AJAX请求更新JSF页面的不同部分,并且提供的一些发送AJAX请求到服务器端的选项。并且新的JSF页面也不会改变的原来“正规” JSF的页面,你不需要用手写任何JavaScript或的XMLHttpRequest对象的代码,一切都是自动完成。

 

 5.2  RichFaces架构概况

下面的图列出了RichFaces框架的几个重要的元素

 

 

 

 

Ajax的过滤器。

为得到RichFaces的所有好处,您应该在应用的web.xml文件注册一个过滤器。 过滤器识别多个请求类型。 过滤器配置的必要信息分布在“过滤器配置(Filter configuration)”节。 序列图的图3显示 “正常”JSF的请求和AJAX请求的不同的处理过程。

在第一种情况下整个JSF组件树的被编码,在第二种情况,这取决于的Ajax区域的“大小”可选地编码。 正如你所看到的,在第二种情况下,过滤器解析一个AJAX的响应的内容,然后递交给客户端。

看看下面一张图片,以了解这有两种方法:

 

 

 5.3 。请求处理序列图  

 

在两种情况里,应用请求的静态或动态资源的信息,注册在ResourseBuilder类中。

当资源的请求来时(图4 RichFaces过滤器在资源缓存检查这一资源,如果它已经存在,把资源发送到客户端。否则,过滤器在登记在ResourceBuilder资源中搜索该资源。 如果资源是登记的, RichFaces过滤器将发出一个请求到 ResourceBuilder,要求创建(提供)该资源。

下一张图显示处理资源请求的方式。

 

 

 

 

 

AJAX的行为组件

AJAX的行为组件有: <a4j:commandButton> <a4j:commandLink> <a4j:poll><a4j:support>等,可以使用它们从客户端发送AJAX请求。

 AJAX的容器

 AjaxContainerJSF页面画一个区域的一个界面,在AJAX的要求期间会被解码。 AjaxViewRootAjaxRegion是这个接口的实现。

 JavaScript引擎

 RichFaces JavaScript引擎运行在客户端。 它知道如何基于从AJAX响应的信息更新JSF页面的不同区域。 请勿直接调用此JavaScript代码,因为它可以自动执行(Do not use this JavaScript code directly, as it is available automatically)

 5.3  RichFaces主要部分

 

 RichFaces同时提供了许多主要部分(框架,组件库)

      Prototype 1.6.0.3 [http://prototypejs.org]

     jQuery 1.2.6 [http://jquery.com]

     Script.aculo.us 1.8.1 [http://script.aculo.us]

欲了解更多有关框架和组件库,转到看到后面的章节中的常见问题[http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/faq/faq.html#d0e581]

注:

 

 

为了防止JavaScript版本的冲突,应该只使用一个版本的框架或组件库。 你可以找到更多关于组件库排除在常见问题解答You could find more information about

libraries exclusion in the FAQ[http://www.jboss.org/file-access/default/members/

jbossrichfaces/freezone/docs/devguide/en/faq/faq.html#d0e1546]  

 

5.4 。限制和规则


为了正确创建RichFaces应用,认真遵守以下几点:

Ø        任何Ajax框架不应在页面上追加或删除,但可替换内容。一个成功的更新,必须存在页面上和响应内容有相同ID。 如果想添加任何代码到页面,需为它放入一个占位符(任何空的元素)。 出于同样的原因,建议将信息放入的“ AjaxOutput ”组件(如没有消息也是一个讯息) 。

Ø        不要使用<f:verbatim>作自重绘(self-rendered)容器,因为这组件是短暂的,而不是储存在组件树上。

Ø        AJAX请求是由XMLHttpRequest的函数用XML格式产生,但,可能会在浏览器中造成此XML绕过很多验证和纠正。 因此,只有创建严格的标准兼容代码的HTMLXHTML,不带跳过任何需要的内容或属性。 任何必要的XML的纠正自动被在服务器上的XML过滤器生成,但很多的意想不到的结果可能被不正确的HTML代码造成。

Ø        RichFaces ViewHandler把自己插到Facelets ViewHandlers链的前端。

RichFaces组件使用自己的呈现。 在呈现响应阶段RichFaces框架作出了遍历该组件树,调用自己的呈现,把结果纳入FacesResponse

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值