当前位置: 首页 > 工具软件 > Ajax4JSF > 使用案例 >

jsf 响应客户端的ajax,Ajax4jsf学习笔记.doc

况唯
2023-12-01

Ajax4jsf 是一个添加Ajax功能到JSF项目中的开源框架Ajax4JSF 被设计用来:

在使用Ajax时充分显示JSF的优点,如: 生命周期, 验证, 转换的灵活性和受管理的静态和动态资源.添加 AJAX 功能到已经存在的 JSF 项目.?该框架被实现为使用一个组件库来添加ajax功能到你的页面中,而不要写js代 码或者使用新的Ajax装饰器替换你已经做好的JSF组件.使用内建的Ajax支持写自定义富组件项目的Java类与资源包.?Ajax动作组件(Action Components).? 有3个Ajax动作组件: AjaxCommandButton, AjaxCommandLink 和 AjaxSupport. 你可以使用他们从客户端发送AJAX请求.

Ajax容器 (Containers).? AjaxContainer 是一个接口,该接口描述了在Ajax请求中应该被解码(decoded)的JSF页面中的一个区域.AjaxViewRoot 和 AjaxRegion 实现了该接口.

JavaScript引擎 (Engine).? Ajax4jsf JavaScript 引擎 在客户端运行. 它知道如何根据来自于Ajax响应的信息来更新你JSF页面上的不同的区域. 程序开发者不需要直接使用这里的JavaScript代码.它自动的下载到客户端.

发送一个 AJAX 请求

从JSF页面发送ajax请求有不同的方法. 你可以使用 , 或者 tags.

所有的这些标签隐藏了在创建一个XMHttpRequest 对象和发送ajax请求所需要的JavaScript 活动.并且, 他们允许你选择页面中那个JSF组件被重新渲染(re-rendered) 来表现Ajax响应的结果 (你可以列出他们的 IDs 在“reRender” 属性中).

和 tags 用来在 “onclick” JavaScript 事件中发送Ajax请求.在你选择JS事件(“onkeyup”, “onmouseover”, etc)时, tag 允许你在普通的JSF组件中添加Ajax 功能和发送ajax请求.

提供Ajax请求功能的大部分重要的属性如下:

reRender 属性 - 就如我们前面提到过的,在一个Ajax响应到来时重新渲染(reRendered)组件.

RequestDelay 属性 – 用来调节请求的频率.

因此每一个来自于键盘事件的请求将会延迟3 ms ,来减少请求的次数.

EventsQueue – 储存下一个请求的队列的名字. 队列帮助阻止下一个请求知道当前的处理完.

LimitToList 用来控制更新的区域. 设置为true – 将更新仅在reRender list中的区域, 如果为false,将更新所有Output Panels区域.

ajaxSingle 如果设置为false用来指定发送请求的区域? – 如果为true则发送整个区域决定发送什么

你可能描述了一个你决定发送到服务器的页面区域.当你发送ajax请求的时候,通过这种方式你可以控制JSF View的那个部分在服务器端被解码(decoded).

和 tags 中的内容在默认值的情况下认为是ajax区域.通过使用 tag你可以在一个JSF页面中定义多个Ajax区域 (they can even be nested).

如果你希望渲染ajax响应以外的区域,那么renderRegionOnly属性值应该设置为false.否则ajax更新被限制在活动区域的元素中.在大部分情况下都可以使用 “reRender”中的ids来定义需要更新的 “AJAX zones”.

但是如果你的页面包含 tag(你希望在ajax响应中更新它的内容)你不可以使用这种方式.

我们在上面描述的 tag 的问题涉及到JSF组件的transientFlag值. 如果该标记的值为true,这个组件不能参与保存和恢复组件树(saving or restoring)的处理过程.

为了提供一种解决这个问题的方法,

 类似资料: