Ajax4jsf使用指南:
一.序言:
Ajax4JSF是一个很容易使用的框架,在其User Guide中详细介绍了如何使用其功能,时间学习一下,并翻译出来以加深理解和方便更多的Java爱好者使用Ajax4jsf框架.
下载Ajax4jsf
最新的Ajax4jsf发布版在这里
ajax4jsf.dev.java/nonav/ajax/ajax­jsf/download.html
解压ajax4jsf.zip文件.
复制ajax4jsf.jar and oscache­2.2.jar到程序的WEB­INF/lib文件下.把下面的内容添加到你的程序的WEB­l文件中:
<filter>
<display­name>Ajax4jsf Filter</display­name>
<filter­name>ajax4jsf</filter­name>
<filter­class>org.ajax4jsf.Filter</filter­class>
</filter>
<filter­mapping>
<filter­name>ajax4jsf</filter­name>
<servlet­name>Faces Servlet</servlet­name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORW ARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter­mapping>
二.a4j简介
该框架被实现为使用一些具有AJAX功能的组件库,在不用写任何JS代码和不用使用新的AJAX组件来替换已经存在的JSF组件下把这些组件添加到已经存在的JSF页面中.Ajax4jsf能够使用页面范围(page­wide)的AJAX支持来替代传统的组件范围(component­wide)
的AJAX支持.这就意味着你可以在页面中定义一个发送AJAX请求的事件(Event),然后当AJAX请求改变客户端发送事件的组件在服务器端的数据时页面上的一个区域将会随着JSF组件树被同步.下面的图片展示了它是如何工作的:
Ajax4jsf允许你定义(意味着通过JSF tags)你希望通过AJAX请求更新的JSF页面的不同部分并且提供的一些发送AJAX请求到服务器端的选项,除了你的JSF页面于常规的JSF有点不同外,没有其他的不同了,这是一个你不需要写JS代码和XMLHttpRequest对象的天堂.
下面的图片展示了Ajax4jsf框架的一些重要的元素:
Ajax过滤器(Filter).为了得到应用Ajax4jsf的好处,你必须在l文件中注册一个Ajax Filter.该过滤器有一些职责.Ajax Filter可以识别多种ajax请求种类.图片3的序列图展示了在处理常规页面和AJAX请求页面的不同之处.在开始的情况下,所有的JSF树将被编码(encoded).在第二种情况下依据AJAX区域(region)(你可以通过使用<a4j:region>tag来定义AJAX region)的大小(size).就如你看到的,第二种情况下过滤器将解析AJAX响应的内容,在它被发送到客户端以前,查看下面的图片来理解这两种方式:
在这两种情况下,你的程序所需要的静态或者动态资源的信息将被注册到ResourseBuilder类中.当请求一个资源时(图片4),AJAX filter 检查资源缓存(Resource Cache)看看这个资源是否存在,如果存在该资源将被送到客户端.否则过滤器将在ResourceBuilder中搜索注册的资源.如果该资源被注册了,AJAX filter将发送一个请求到ResourceBuilder来创建[create(deliver)]该资源.下面的图片显示了请求资源的处理过程.
●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功能和发送ajajava调用js的ajax
x请求.
提供Ajax请求功能的大部分重要的属性如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。