JSF 2.0,“preRenderView”事件处理程序调用了两次

时间:2011-05-20 09:48:14

标签: jsf-2

我有以下代码段:

<?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()方法被调用两次(它只是一个生成日志条目的简单方法)。你知道它为什么被叫两次吗?

感谢。

1 个答案:

答案 0 :(得分:5)

尝试将<f:event/>标记放在<f:metadata>之外,它对我有效(mojarra 2.1.0)。