posts - 208, comments - 3952, trackbacks - 0, articles - 3
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

转载:ajax4jsf常用标签的使用

Posted on 2008-01-17 09:43 诗特林 阅读(605) 评论(0)  编辑  收藏 所属分类: JSF

   转载:ajax4jsf常用标签的使用

 

ActionListener或者ValueChangeListener的工作方式一样, 只是仅用于AJAX容器. 添加一个指定的类作为AjaxEvent的监听器. (sent in case of an AJAX request for this container).

Table 4.1. a4j:ajaxListener attributes

type

注册到AjaxListener 中类的完全限定的Java类名

 

    <a4j:region selfRendered="true" ajaxListener="#{bean.processAjax}" id="Region">              </a4j:region>   

当来自于RegionAJAX request触发时,将调用bean'processAjax'方法.

a4j:region

该标签定义在AJax请求处理过程中被发送到服务器端解码的部分JSF组件树.

Table 4.2. a4j:region 的属性

selfRendered

如果为true,在调用应用程序(InvokeApplication )阶段自渲染子树(如果immediate 属性设置为true则是 Decode)

renderRegionOnly

标记,用来决定活动区域外的内容在Ajax响应中是否渲染.如果为"true" , AJAX response过程中活动区域外的组件都不渲染. 如果为"false", 将渲染包含在响应中的所有组件树.默认值为"true"

rendered

如果为 false, 该组件将不被重新渲染.

id

每个组件都应该有个唯一的id. 如果没有指定的话,将会自动产生.

immediate

如果该组件被Ajax请求激活的话,标记该组件应该立即(在应用请求值阶段)被感兴趣的监听器和动作处理,而不是等到调用应用程序阶段.(译者注:该标记和JSF中的immediate标记所代表的意思差不多,跳过验证阶段到呈现响应阶段)

binding

组件绑定

ajaxListener

方法绑定,当该组件被ajax请求激活时,将调用该监听器方法处理该事件.该方法必须为public的并且接受一个 AjaxEvent 参数,返回void.

 

    <a4j:region>        <!--Some content-->    <a4j:region>   

如果在该组件的区域中有一个Ajax请求调用了该区域将根据Ajax的设置被框架处理.

a4j:page

该组件呈现一个完全的HTML页面结构.它必须是view root (JSP <f:view> tag)的第一个(并且是仅有的一个)子组件. 没有Html代码可以在该组件的外面. 它也支持在Ajax请求中处理子组件,就和<a4j:region>一样.对于一个普通的请求,它将把结果呈现为在客户端页面<head>元素中的<script>元素.如果该组件包含一个"head" facet, facet的内容也呈现在<head>.对于一个Ajax请求,在整个结构中仅仅涉及到的组件被呈现.下面是个在JSP (jspx version)中使用它的例子:

<jsp:root xmlns:....

<f:view>

<a4j:page>

<f:facet name="head">

...

</f:facet>

<!-- page content here -->

</a4j:page>

</f:view>

</jsp:root>

Table 4.3. a4j:page attributes

selfRendered

如果为true,在调用应用程序(InvokeApplication )阶段自渲染子树(如果immediate 属性设置为true则是 Decode)

lang

用来描述在产生该组件的markup时用到的语言(产生该组件标记所使用的语言)

title

该组件产生的Markuptitle属性值

renderRegionOnly

renderRegionOnly

onunload

在页面unload时执行的JS代码

rendered

如果是 false, 该组件不会被呈现.

contentType

设置响应的自定义的mime内容类型

dir

文本方向

id

每个组件都应该有个唯一的id. 如果没有指定的话,将会自动产生.

styleClass

HTML class 属性对应.

immediate

如果该组件被Ajax请求激活的话,标记该组件应该立即(在应用请求值阶段)被感兴趣的监听器和动作处理,而不是等到调用应用程序阶段.(译者注:该标记和JSF中的immediate标记所代表的意思差不多,跳过验证阶段到呈现响应阶段)

onload

在页面load时执行的JS代码

style

在该组件被呈现时应用的CSS style(s)

pageTitle

作为页面 title的字符串

binding

组件绑定.

ajaxListener

方法绑定,当该组件被ajax请求激活时,将调用该监听器方法处理该事件.该方法必须为public的并且接受一个 AjaxEvent 参数,返回void.

 

        <a4j:page>      <f:facet name=”head”>                        </f:facet>                <a4j:page>   

上面的示例结构将被呈现为:

        <HTML>        <HEAD>                     </HEAD>         <body >                    </body>     </HTML>   

a4j:support

UIComponent-based组件上添加ajax功能,使他们有JavaScript事件属性. 在解码期间:如果一个请求为Ajax-performed, ExternalContext 中的requestParameterMap属性中得到Map,如果该Map"clientId" key对应的值非空,在组件上创建一个 javax.faces.event.ActionEvent, 并且传递该事件到该组件的queueEvent(),然后把他的reReander区域中的组件id添加到reReander属性中.在编码过程中.不编码一个组件. 相反的,在父组件上添加一个与事件属性的值相同的值绑定(Instead, it adds ValueBinding for a property of the parent component with the name as a value of its "event" property).结果,当呈现时,父组件创建一个在提交一个ajax请求时用到的JS代码.如果该组件有子UIParameter组件,添加他的name/value作为附加的请求参数.如果父组件是一个UIInput的实例,并且ajaxType属性是input, 则也提交input 域中的值. 在这种情况下,你可以在UIForm外面提交一个单一的input. (As a result, when rendered, the parent component builds JavaScript code for submitting an AJAX request on this event. If the component has child UIParameter components, appends it's name/value as additional request parameters. If a parent component is an instance of UIInput and the ajaxType property is "input", submits the value of the input field, also. In this case, you can submit a single input field outside of UIForm.)

Table 4.4. a4j:support 属性

actionListener

方法绑定,当该组件被ajax请求激活时,将调用该监听器方法处理该事件.该方法必须为public的并且接受一个 AjaxEvent 参数,返回void.

parentProperties

parentProperties

action

方法绑定到要被激活的程序动作方法, 如果该 UIComponent 被用户激活, 根据immediate属性的值,方法在 请求处理生命周期中的Apply Request Values 或者 Invoke Application 阶段 被调用.

oncomplete

在客户端请求完成时调用的js代码

rendered

如果为false,该组件将不会被显示