【问题标题】:PrettyFaces and JSF ui:include causing action method to be called twicePrettyFaces 和 JSF ui:include 导致动作方法被调用两次
【发布时间】:2012-03-03 07:11:56
【问题描述】:

我有一个通过漂亮面孔请求呈现的 xhtml 视图。我遇到了一个问题,即来自漂亮面孔的动作映射被执行两次,但只有当我有一个 ui:include 标记时。示例漂亮的配置是这样的:

 <url-mapping id="testRedirector">
      <pattern value="/project/#{lookupBean.projectId}/#{lookupBean.cardNumber}" />
      <view-id value="/lookup.xhtml" />
      <action>#{myController.init}</action>
 </url-mapping>

.xhtml 是这样的:

... 

<ui:include src="/header.xhtml">
    <ui:param name="this_tab_class" value="current"/>
</ui:include>

<h:panelGrid columns="4">
...

根据对 URL 的请求,我看到 myController.init() 上的日志调用被执行了两次。如果我注释掉 ui:include,init 只会正确调用一次。我已经在漂亮的 url-mapping 元素上尝试了其他 jsf 阶段侦听器,但是所有其他枚举类型导致 init() 永远不会被调用。

我的问题是,如何实现将预定义 header.xhtml 或其他预定义组件包含到页面中而不调用 RENDER_REDRAW 阶段两次的相同目标?或者这是一个漂亮面孔的特定问题?

【问题讨论】:

  • 我是 PrettyFaces 的开发人员之一。我认为这可能是 PrettyFaces 中的错误,也可能是您正在使用的 JSF 实现中的错误。您应该将此问题发布到 PrettyFaces 论坛。我们可以在那里详细讨论这个问题。 ocpsoft.com/support/forum/prettyfaces-users
  • 您的init 方法是否使用@PostConstruct 注释?

标签: jsf-2 prettyfaces


【解决方案1】:

这听起来像是一个 JSF 错误。不包含 PrettyFaces 时会发生这种情况吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 2021-11-04
    • 2011-01-20
    • 1970-01-01
    • 2018-07-26
    相关资源
    最近更新 更多