我需要为在文档正文中执行 preRenderView 和 preRenderComponent 的侦听器后检索的页面设置动态页面标题。但我发现标题是在那些听众被执行之前呈现的。
有什么办法可以延迟标题标签的呈现直到听众执行?
好的,我尝试了以下策略作为解决方法。我只是f:event type="preRenderComponent"..
从内部移动body
到head
部分,我得到了所需的行为。
<f:metadata>
<f:viewParam name="id" value="#{bean.id}" />
</f:metadata>
<ui:define name="titleOfPage">
<f:event type="preRenderComponent" listener="#{bean.method()}"/>
#{bean.title}
</ui:define>
<ui:define name="bodyOfPage">
..
..
</ui:define>
主模板:
<h:head>
...
<title><ui:insert name="titleOfPage"></ui:insert></title>
</h:head>
<h:body >
<ui:insert name="bodyOfPage">Body of the pages goes here</ui:insert>
</h:body >
调用第一个侦听器方法,然后 呈现title
内部。head
也许PreRenderView
type 可以直接使用而无需将f:event
标签移动到 head 但PreRenderView
即使在不需要的 ajax 请求上也会触发。