解压 ajax4jsf.zip 文件.
复制 ajax4jsf.jar and oscache-2.2.jar 到程序的 WEB-INF/lib 文件夹下.
把下面的内容添加到你的程序的 WEB-INF/web.xml 文件中:
<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>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
添加下面的内容:
<%@ taglib uri=" https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
到你每个使用Ajax功能的JSP页面中.
复制 ajax4jsf.jar and oscache-2.2.jar 到程序的 WEB-INF/lib 文件夹下.
把下面的内容添加到你的程序的 WEB-INF/web.xml 文件中:
<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>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
添加下面的内容:
<%@ taglib uri=" https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
到你每个使用Ajax功能的JSP页面中.
<f:view>
<h:form>
<h:inputText size="50" value="#{bean.text}" >
<a4j:support event="onkeyup" reRender="rep"/>
</h:inputText>
<h:outputText value="#{bean.text}" id="rep"/>
</h:form>
</f:view>
1
.发送一个 AJAX 请求
标签:
< a4j:commandButton >
< a4j:commandLink >
< a4j:support >
标签属性:
reRender: Ajax响应到来时重新渲染(reRendered)组件 一般值等于组件的id
< a4j:support event = " onkeyup " reRender = " rep " />
...
< h:outputText value = " #{bean.text} " id = " rep " />
RequestDelay: 用来调节请求的频率,即响应此事件延迟的秒数
EventsQueue: 储存下一个请求的队列的名字. 队列帮助阻止下一个请求知道当前的处理完.
LimitToList: 用来控制更新的区域. 设置为true将更新仅在reRender list中的区域, 如果为false,将更新所有Output Panels区域. ( < f:view > 和 </ f:view > tags 中的内容在默认值的情况下认为是ajax区域)
ajaxSingle: 如果设置为false用来指定发送请求的区域,如果为true则发送整个区域
2 .通过使用 < a4j:region > tag你可以在一个JSF页面中定义多个Ajax区域
如果你希望渲染ajax响应以外的区域,那么renderRegionOnly属性值应该设置为false.否则ajax更新被限制在活动区域的元素中.
< a4j:region renderRegionOnly = " true " >
标签:
< a4j:commandButton >
< a4j:commandLink >
< a4j:support >
标签属性:
reRender: Ajax响应到来时重新渲染(reRendered)组件 一般值等于组件的id
< a4j:support event = " onkeyup " reRender = " rep " />
...
< h:outputText value = " #{bean.text} " id = " rep " />
RequestDelay: 用来调节请求的频率,即响应此事件延迟的秒数
EventsQueue: 储存下一个请求的队列的名字. 队列帮助阻止下一个请求知道当前的处理完.
LimitToList: 用来控制更新的区域. 设置为true将更新仅在reRender list中的区域, 如果为false,将更新所有Output Panels区域. ( < f:view > 和 </ f:view > tags 中的内容在默认值的情况下认为是ajax区域)
ajaxSingle: 如果设置为false用来指定发送请求的区域,如果为true则发送整个区域
2 .通过使用 < a4j:region > tag你可以在一个JSF页面中定义多个Ajax区域
如果你希望渲染ajax响应以外的区域,那么renderRegionOnly属性值应该设置为false.否则ajax更新被限制在活动区域的元素中.
< a4j:region renderRegionOnly = " true " >
在发送请求前自定义JS. OnSubmit attribute
< h:inputText id = " i " value = " #{beanText.kennung} " >
< a4j:support event = " onfocus " onsubmit = " doSomething(); " reRender = " panelToReRender " />
</ h:inputText >
doSomething() " 函数将在 Ajax 请求前执行.
另外如果该函数返回 " false " - Ajax 请求将不发生.
注意:我们的onsubmit 有点和标准的不一样. 如果你想执行ajax请求,不要返回true - 因为 < xxx >< a4j:support event = " onclick " onsubmit = " return true; " > 将被转换为 < xxx onclick = " return true; A4J.Submit(.... ); " > ,在这种情况下请求将不被发送.
3 .Chapter 4 . Ajax4JSF 组件库
a4j:ajaxListener 添加一个指定的类作为AjaxEvent的监听器
a4j:keepAlive 该标签通过EL表达式(# ... {'+name+'} )得到bean, 并且保存该bean到组件树中. 在恢复组件树中,bean被放到request - scope中
a4j:region 该标签定义在AJax请求处理过程中被发送到服务器端解码的部分JSF组件树
a4j:page 该组件呈现一个完全的HTML页面结构。它必须是view root (JSP < f:view > tag)的第一个(并且是仅有的一个)子组件. 没有Html代码可以在该组件的外面
< h:inputText id = " i " value = " #{beanText.kennung} " >
< a4j:support event = " onfocus " onsubmit = " doSomething(); " reRender = " panelToReRender " />
</ h:inputText >
doSomething() " 函数将在 Ajax 请求前执行.
另外如果该函数返回 " false " - Ajax 请求将不发生.
注意:我们的onsubmit 有点和标准的不一样. 如果你想执行ajax请求,不要返回true - 因为 < xxx >< a4j:support event = " onclick " onsubmit = " return true; " > 将被转换为 < xxx onclick = " return true; A4J.Submit(.... ); " > ,在这种情况下请求将不被发送.
3 .Chapter 4 . Ajax4JSF 组件库
a4j:ajaxListener 添加一个指定的类作为AjaxEvent的监听器
a4j:keepAlive 该标签通过EL表达式(# ... {'+name+'} )得到bean, 并且保存该bean到组件树中. 在恢复组件树中,bean被放到request - scope中
a4j:region 该标签定义在AJax请求处理过程中被发送到服务器端解码的部分JSF组件树
a4j:page 该组件呈现一个完全的HTML页面结构。它必须是view root (JSP < f:view > tag)的第一个(并且是仅有的一个)子组件. 没有Html代码可以在该组件的外面