我有一个通过prettyfaces请求呈现的xhtml视图。我遇到了一个问题,其中来自prettyfaces的Action映射正在执行两次,但只有当我有一个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只能被调用一次。我已经在prettyfaces url-mapping元素上尝试了其他jsf阶段监听器,但所有其他枚举类型导致init()永远不会被调用。
我的问题是,如何实现将预定义的header.xhtml或其他预定义组件包含在页面中而不是两次调用RENDER_REDRAW阶段的相同目标?或者这是一个非常具体的问题?
答案 0 :(得分:1)
这听起来像是一个JSF错误。当你不包括PrettyFaces时会发生这种情况吗?