我需要为preRenderView&之后检索的页面设置动态页面标题。 preRenderComponent在文档正文中的侦听器已被执行。但我发现在执行这些侦听器之前会呈现标题。
在听众执行之前,有什么方法可以延迟标题标记的呈现吗?
答案 0 :(得分:1)
好的,我尝试将策略作为解决方法。我只是将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 >
调用第一个侦听器方法&amp;然后呈现title
内的head
。
也许可以直接使用PreRenderView
类型而无需将f:event
标记移到头部,但即使在不希望的ajax请求上也会触发PreRenderView
。