Primefaces对话框框架:RequestContext.execute-Javascript调用两次

Primefaces对话框框架:RequestContext.execute-Javascript调用两次,javascript,primefaces,dialog,requestcontext,Javascript,Primefaces,Dialog,Requestcontext,我想从对话框窗口的bean调用javascript,但它执行了两次 我使用RequestContext.getCurrentInstance().execute()方法。如果页面不是“对话框架”,但在外部页面对话框窗口中,javascript执行两次,则此方法非常有效 父页面: <h:form id="welcomeform"> <p:commandButton value="Welcome" actionListener="#{welcome.openhello()}"

我想从对话框窗口的bean调用javascript,但它执行了两次

我使用RequestContext.getCurrentInstance().execute()方法。如果页面不是“对话框架”,但在外部页面对话框窗口中,javascript执行两次,则此方法非常有效

父页面:

<h:form id="welcomeform">
  <p:commandButton  value="Welcome" actionListener="#{welcome.openhello()}" />
</h:form>
faces-config.xml文件:

    <action-listener>org.primefaces.application.DialogActionListener</action-listener>
    <navigation-handler>org.primefaces.application.DialogNavigationHandler</navigation-handler>
     <view-handler>org.primefaces.application.DialogViewHandler</view-handler>
org.primefaces.application.DialogActionListener
org.primefaces.application.DialogNavigationHandler
org.primefaces.application.DialogViewHandler
javascript两次执行的更大问题是RequestContext.getCurrentInstance().closeDialog(..)方法也会关闭两次,因为它调用本机PrimeFaces.closeDialog({pfdlgcid:'{param.pfdlgcid}}}})脚本,如果使用嵌套对话框,则会关闭父对话框窗口,而不仅仅是子对话框

Primefaces版本是6.1 服务器是Payara,浏览器是Chrome


你知道这里出了什么问题吗?提前谢谢

部署的WebApp中有两个PF版本只有一个primefaces*.jar文件在我的WebApplication1\build\web\web-INF\lib\文件夹中。或者在哪里可以找到双PF版本?
<h:body>        
    <h:form id="helloform">
        <p:commandButton    value="Hello" actionListener="#{hello.actionhello()}" />
    </h:form>
</h:body>
@ManagedBean(name = "hello")
public class Hello {
    public void actionhello() {
        RequestContext.getCurrentInstance().execute("alert('Hello World!');");
    }
}
    <action-listener>org.primefaces.application.DialogActionListener</action-listener>
    <navigation-handler>org.primefaces.application.DialogNavigationHandler</navigation-handler>
     <view-handler>org.primefaces.application.DialogViewHandler</view-handler>