【问题标题】:JSF 2.0, "preRenderView" event handler called twiceJSF 2.0,“preRenderView”事件处理程序调用了两次
【发布时间】:2011-08-29 12:50:54
【问题描述】:

我有以下sn-p:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html
        PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">

<f:metadata>
    <f:event type="preRenderView" listener="#{workflowController.test}"/>
</f:metadata>

<h:head>
    <title>Simple JSF Facelets page</title>
</h:head>

<h:body>
    Hello, Place your content here
</h:body>

</html>

当我打开页面时,WorkflowController.test() 方法被调用了两次(它只是一个创建日志条目的简单方法)。你知道为什么它会被调用两次吗?

谢谢。

【问题讨论】:

  • 究竟是哪个 JSF impl/version?我不记得在 Mojarra 2.0.x 和 2.1.x 上见过这个。
  • 我正在使用Glassfish JavaX dependencies。我还注意到这种情况只发生一次,在重新启动域后。在所有其他连续请求上,该事件仅触发一次。
  • 响应迟了,但我刚刚在我的 preRenderView 上遇到了同样的问题。但在我的情况下,它每次都发生,而不是仅在域启动后发生。
  • @Dario 你有没有找到解决这种奇怪效果的方法?面临同样的问题...

标签: jsf-2


【解决方案1】:

尝试将&lt;f:event/&gt; 标签放在&lt;f:metadata&gt; 之外,它对我有用(mojarra 2.1.0)。

【讨论】:

    猜你喜欢
    • 2012-10-27
    • 1970-01-01
    • 2010-12-04
    • 2012-09-17
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    相关资源
    最近更新 更多