2012-02-10 41 views
2

我有一个xhtml视图通过一个prettyfaces请求呈现。我碰到一个问题,其中来自蛮脸的Action映射被执行两次,但只有当我有一个ui:include标记时。这个例子相当的配置是这样的:PrettyFaces和JSF UI:包括导致操作方法被调用两次

<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阶段的相同目标?或者这是一个相当特殊的问题?

+1

我是PrettyFaces的开发者之一。我认为这可能是PrettyFaces中的错误或您正在使用的JSF实现中的错误。您应该将此问题发布到PrettyFaces论坛。我们可以在那里详细讨论这个问题。 http://ocpsoft.com/support/forum/prettyfaces-users – chkal 2012-02-11 10:40:54

+0

你的'init'方法用'@ PostConstruct'注解了吗? – rbento 2012-10-29 19:58:30

回答

1

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