0

我需要为在文档正文中执行 preRenderView 和 preRenderComponent 的侦听器后检索的页面设置动态页面标题。但我发现标题是在那些听众被执行之前呈现的。

有什么办法可以延迟标题标签的呈现直到听众执行?

4

1 回答 1

1

好的,我尝试了以下策略作为解决方法。我只是f:event type="preRenderComponent"..从内部移动bodyhead部分,我得到了所需的行为。

<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

也许PreRenderViewtype 可以直接使用而无需将f:event标签移动到 head 但PreRenderView即使在不需要的 ajax 请求上也会触发。

于 2012-11-18T20:26:13.607 回答