如何在adf中处理客户端侦听器之前处理动作侦听器方法

时间:2014-01-08 14:51:24

标签: oracle-adf jdeveloper

在ADF中处理动作侦听器后,有没有办法处理客户端侦听器?

以下是我的代码段:

<af:commandLink text="Click Me" id="myLink"
                partialSubmit="true"
                actionListener="#{pageFlowScope.myBean.changeSelection}">
     <af:clientListener method="showMyTable" type="action"/>
</af:commandLink>
<af:outputText value="#{pageFlowScope.myBean.selectedValue}" id="ot1" 
               partialTriggers="myLink" />

我的用例是:当我点击命令链接时,我必须更改输出文本的显示值,然后必须使用javascript(客户端监听器)显示一些其他组件。

我的问题是:当我点击命令链接时,首先要处理客户端监听器。处理完客户端侦听器后,输出文本组件将通过动作侦听器进行刷新。

我的要求是首先处理动作侦听器,以便首先刷新输出文本组件。然后处理客户端监听器以显示其他组件。

1 个答案:

答案 0 :(得分:1)

没有办法让它以这种方式工作,因为clientListener将在设计之前工作。

但是,您只需直接从actionListener启动javascript请求即可实现目标。

在actionListener的方法中执行类似的操作:

FacesContext fctx = FacesContext.getCurrentInstance();
ExtendedRenderKitService service = Service.getRenderKitService(fctx, ExtendedRenderKitService.class);
service.addScript(fctx, "showMyTable();");