- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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请求有不同的方法. 你可以使用 a4j:commandButton, a4j:commandLink 或者 a4j:support tags.
所有的这些标签隐藏了在创建一个XMHttpRequest 对象和发送ajax请求所需要的JavaScript 活动.并且, 他们允许你选择页面中那个JSF组件被重新渲染(re-rendered) 来表现Ajax响应的结果 (你可以列出他们的 IDs 在“reRender” 属性中).
a4j:commandButton 和 a4j:commandLink tags 用来在 “onclick” JavaScript 事件中发送Ajax请求.在你选择JS事件(“onkeyup”, “onmouseover”, etc)时, a4j:support tag 允许你在普通的JSF组件中添加Ajax 功能和发送ajax请求.
提供Ajax请求功能的大部分重要的属性如下:
reRender 属性 - 就如我们前面提到过的,在一个Ajax响应到来时重新渲染(reRendered)组件.
RequestDelay 属性 – 用来调节请求的频率.
h:inputText size=50 value=#{bean.text}
a4j:support event=onkeyup RequestDelay=”3”/
/h:inputText
因此每一个来自于键盘事件的请求将会延迟3 ms ,来减少请求的次数.
EventsQueue – 储存下一个请求的队列的名字. 队列帮助阻止下一个请求知道当前的处理完.
LimitToList 用来控制更新的区域. 设置为true – 将更新仅在reRender list中的区域, 如果为false,将更新所有Output Panels区域.
ajaxSingle 如果设置为false用来指定发送请求的区域? – 如果为true则发送整个区域决定发送什么
你可能描述了一个你决定发送到服务器的页面区域.当你发送ajax请求的时候,通过这种方式你可以控制JSF View的那个部分在服务器端被解码(decoded).
f:view 和 /f:view tags 中的内容在默认值的情况下认为是ajax区域.通过使用a4j:region tag你可以在一个JSF页面中定义多个Ajax区域 (they can even be nested).
如果你希望渲染ajax响应以外的区域,那么renderRegionOnly属性值应该设置为false.否则ajax更新被限制在活动区域的元素中.在大部分情况下都可以使用 “reRender”中的ids来定义需要更新的 “AJAX zones”.
但是如果你的页面包含f:verbatim/ tag(你希望在ajax响应中更新它的内容)你不可以使用这种方式.
我们在上面描述的f:verbatim/ tag 的问题涉及到JSF组件的transientFlag值. 如果该标记的值为true,这个组件不能参与保存和恢复组件树(saving or restoring)的处理过程.
为了提供一种解决这个问题的方法, Ajax4jsf 利用a4j:outputPanel tag定义了
文档评论(0)