0

ドキュメント本文内のpreRenderViewとpreRenderComponentのリスナーが実行された後に取得されるページに動的なページタイトルを設定する必要があります。しかし、それらのリスナーが実行される前にタイトルがレンダリングされていることがわかりました。

リスナーが実行されるまでタイトルタグのレンダリングを遅らせる方法はありますか?

4

1 に答える 1

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 >

最初のリスナー メソッドが呼び出され、次に title内部headがレンダリングされます。

おそらく、タグを先頭PreRenderViewに移動する必要なくタイプを直接使用できた可能性がありますが、望ましくない ajax リクエストでもトリガーされます。f:eventPreRenderView

于 2012-11-18T20:26:13.607 に答える