使用ajax4jsf在JSF复杂组件(Table)中实现ajax更新功能

使用ajax4jsf在JSF复杂组件(Table)中实现ajax更新功能
不使用InvokeOnComponent,在Iterable JSF组件中实现局部更新,
新的Ajax Listener 添加到发布包中,来实现复杂组件的局部更新. 如果你想在JSF DataTable(or Facelets ui:repeat) 中添加ajax功能,你现在只需要在 a4j:support or a4j:button/link 组件中添加一个ajax listener <a4j:ajaxListener type="org.ajax4jsf.ajax.forceRender"> 就可以了.
使用该方式,我们就不用使用 InvokeOnComponent , 并且与jsf 1.1 程序兼容.
Example:


以下是代码:
<h:dataTable value="#{pictures.al}" var="pics">      <f:facet name="header">            <f:verbatim>Data table with Pictures and Zoom Elements</f:verbatim>      </f:facet>      <h:column>            <h:panelGroup id="rerenderpic">         <h:graphicImage value="#{pics.flag}" width="#{pics.width}" height="#{pics.height}"           style="display:block;"/>         <a4j:commandLink value="Zoom In" action="#{pictures.zoomIn}" reRender="rerenderpic"           style="display:#{pics.zoomed ? 'none': 'block'}">                  <a4j:actionparam value="#{pics.flag}" name="picture"/>                  <a4j:ajaxListener type="org.ajax4jsf.ajax.ForceRender"/>            </a4j:commandLink>         <a4j:commandLink value="Zoom Out" action="#{pictures.zoomOut}" reRender="rerenderpic"           style="display:#{pics.zoomed ? 'block': 'none'}">                  <a4j:actionparam value="#{pics.flag}" name="picture"/>                  <a4j:ajaxListener type="org.ajax4jsf.ajax.ForceRender"/>            </a4j:commandLink>            </h:panelGroup>      </h:column> </h:dataTable>
[Ctrl+A 全部选择]

我们强制相应在Event Handler中产生. 所有的 Iterable JSF 组件在调用handler以前设置 iteration variables的值.所以我们可以在该阶段更新局部视图.

资源: JSF中文论坛 http://bbs.hexiao.cn/ 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值