在JSF中一个接一个地执行两个动作侦听器

时间:2016-01-15 15:15:56

标签: jsf button actionlistener oracle-adf

在我的ADF项目的jsff文件中,我有一个按钮,用于搜索页面上显示的一些信息。

<af:button actionListener="#{bindings.ExecuteWithParams.execute}"
            text="SEARCH"
            id="button"/>

之后,我有一个用于编辑显示信息的按钮。

<af:commandMenuItem text="edit"
           actionListener="#{viewScope.bean.editPopup}"
           id="editBtn" immediate="true">

这里的主要思想是当actionListener="#{viewScope.bean.editPopup}"被执行时,actionListener="#{bindings.ExecuteWithParams.execute}"会自动执行{{1}}。

您有什么想法可以实现吗?谢谢!

2 个答案:

答案 0 :(得分:0)

您可以捕获辅助bean中的单个按钮单击并从那里调用这两个方法。这blog应该会有所帮助。还this

对于viewScope bean,可以使用helper Static classes来获取对bean的引用,然后在那里调用viewScope bean方法。看看JSFUtils.java。此blog较旧,但也可能有所帮助。

答案 1 :(得分:0)

在这种情况下,您可以在ActionListener(editPopup)中以编程方式调用executeWithParams 只需在pageDef中添加操作并使用OperationBinding

进行调用
BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry(); 
OperationBinding method = bindings.getOperationBinding("methodAction");  
Object result = method.execute();