ビュー パラメータから指定された値に応じて、ページの一部 (この例ではフッター) を含めたいページがあります。
preRenderViewViewScoped
でバッキング Bean を初期化しています
<f:metadata>
<f:viewParam name="racecode" value="#{displayResults.racecode}" />
<f:event type="preRenderView" listener="#{displayResults.init}" />
</f:metadata>
これは、データベースにクエリを実行して、含めるフッターの名前を取得します。これは、次のように使用されます。
<h:panelGroup id="customFooter" display="block">
<ui:include src="#{displayResults.customFooter}" />
</h:panelGroup>
これにより、常にページが不足しています。しかし、ページ名を手動で入力すると機能します。を に置き換えても同じui:include
ですh:outputText
。
これは JSF のフェーズと関係があることと、その時点でui:include
はまだ値が設定されていないことを理解しています。(フェーズを読んで理解を深めることは、私の TODO リストに含まれています)。
疑問は残ります。どうすればそのようなことを成し遂げることができますか。Bean に viewParam を使用させ、データベースにクエリを実行し、その値をui:include
?