以编程方式在actionlistener中添加ajax行为

以编程方式在actionlistener中添加ajax行为,ajax,jsf,primefaces,jsf-2,Ajax,Jsf,Primefaces,Jsf 2,我们的项目构建在JSF2.3和Primefaces 6.2之上。 我们大量使用Primefaces对话框框架。 打开对话框的典型命令按钮如下所示: <p:commandButton id="editButton" icon="fa fa-edit" value="Edit" disabled="#{empty interfaceIpDialogBean.selectedAddress}" actionListener="#{interfaceIpDialo

我们的项目构建在JSF2.3和Primefaces 6.2之上。 我们大量使用Primefaces对话框框架。 打开对话框的典型命令按钮如下所示:

<p:commandButton id="editButton" icon="fa fa-edit" value="Edit" disabled="#{empty interfaceIpDialogBean.selectedAddress}"
                 actionListener="#{interfaceIpDialogBean.onEditIpAddress}">
    <p:ajax event="dialogReturn" listener="#{interfaceIpDialogBean.onEditIpAddressResult}" update="@form"/>
</p:commandButton>

在按钮侦听器中,调用Primefaces对话框框架将打开模式对话框。 primefaces使用ajax事件“dialogReturn”从对话框关闭后返回结果,该事件必须添加到commandButton

现在,我们希望以更动态的方式使用此模式。我们不希望在可能打开对话框的每个按钮上注册ajax事件。我们创建了一个对话框服务,它使用回调,在对话框关闭后将调用回调

但是我们仍然需要对按钮进行额外的ajax调用,以便在对话框关闭后更新被调用方的ui

我的问题是: 是否可以在actionListener中的commandButton上注册ajax行为? 或者我们可以在关闭对话框的ajax调用之后,使用Primefaces javascript库触发ajax部分更新吗


每个想法都是受欢迎的;-)

为什么不创建一个包含ajax的
my:compositeButton
?您所建议的方法将使您在每次调用时都能将行为附加到命令按钮。