【问题标题】:Primefaces: RequestContext.execute - Javascript called twicePrimefaces:RequestContext.execute - Javascript 调用了两次
【发布时间】:2016-04-15 09:29:10
【问题描述】:

我正在使用 primefaces,但在 ajax 调用结束时执行 JavaScript 时遇到问题。我在 RequestContext 中添加了一些动作,它被执行了两次!

RequestContext.getCurrentInstance().execute("alert('I'm here!')");

它还嵌入了两次我从服务器返回的 XML 中 - 两次相同的组件和相同的节点。

Primefaces 版本是 5.3.10

任何想法这里出了什么问题?谢谢。

【问题讨论】:

  • PrimePartialResponseWriter 中的 endDocument 也被调用了两次。它包含对 encodeScripts 的调用,该调用返回 节点...
  • 好的,看来这是一个部署问题。我们再次部署,问题解决了……
  • 那么请删除问题或将其创建为答案
  • 我在从 p:commandButton 调用执行方法时遇到了同样的问题。在@PostConstruct 方法中调用它时不会发生。

标签: javascript primefaces requestcontext


【解决方案1】:

距离上次回答和问题似乎已经解决已经有一段时间了,但我相信我知道发生了什么以及新部署解决问题的原因。

当您在 EAR 中有多个 primefaces*.jar(即 EAR/lib 和 WAR/WEB-INF/lib)时,似乎会发生这种情况。

如果其他人遇到此问题,请尝试从 EAR/lib(或 EAR 根目录)中删除,在 EAR 中仅保留一个 primefaces*.jar。

【讨论】:

    【解决方案2】:

    我通过在 POM 中将 Primefaces 的版本从 6.0 更改为 6.1 来避免此类错误。 (6.1 版本在服务器 Payara 的库中)

    【讨论】:

    • 如此有效,您还确保只有一个 PrimeFaces 版本?但是使用的是哪个?
    【解决方案3】:

    好的,看来这是一个部署问题。我们再次部署,问题解决了……

    【讨论】:

      猜你喜欢
      • 2020-11-23
      • 2017-06-25
      • 2013-01-21
      • 2012-09-08
      • 2016-04-27
      • 2019-02-27
      • 1970-01-01
      • 2019-12-04
      • 2018-09-15
      相关资源
      最近更新 更多