我正在使用JSF 2.0.1并在尝试使用header.xhtml
将<ui:include src="header.xhtml"></ui:include>
添加到其他页面时观察到差异,代码示例如下:
header.xhtml
此页面将作为一个组件添加到主页面上,它包含用于检查是否允许用户登录该主页面的preRenderView
事件。
<h:head>
<title>Header</title>
</h:head>
<f:event type="preRenderView" listener="#{authorize.checkAuthentication}"/>
<h:body></h:body>
如果我在主页上使用{/ 1}} <ui:include src="header.xhtml"></ui:include>
部分,如下所示:
Major.xhtml
<h:body>
问题是<h:head>
<title>Major</title>
</h:head>
<h:body>
<ui:include src="header.xhtml"></ui:include>
<f:view></f:view>
</h:body>
<f:event>
未触发,在另一个字header.xhtml
功能无法正常工作。
但是,如果我将checkAuthentication
移出主页上的<ui:include src="header.xhtml"></ui:include>
部分而将其置于 <h:body>
之前,则会触发事件并且功能正常。
<h:body>
有人可以帮我解释为什么会出现这种差异吗?是否有任何专业的方法来解决这种情况,因为保持标题页内容并触发事件?感谢
注意:我也检查this ticket,但不确定我们是同一个案例