f:metadata 要素で prerender ビュー イベントを使用して別のページを呼び出しています。
それを使用してページに移動する<h:link>
と、それが機能し、リスナーメソッドが呼び出されます。
ただし、呼び出しページに属するマネージド Bean のアクション メソッドからの結果を使用してページに移動すると、prerenderview で指定されたリスナーは呼び出されません (リンクによって呼び出された場合と同様)。2 番目のページに移動しますが、リスナーの呼び出しはありません。
アクションメソッドから呼び出すことを本当に好みます。これを使用していくつかの作業を行い、呼び出されたページが使用するセッションマップに変数を配置するためです。リンクを使用して同じことを達成する方法がわかりません。オブジェクトはかなり大きくなる可能性があります... Mbではなくkbですが、それでもリクエストに入れたいものではありません。
呼び出しページ リクエストのマネージド Bean をスコープ指定し、ビュー スコープ指定してみました。
マネージド Bean の結果から呼び出された場合、prerenderview を起動することはできませんか? 私が言ったように、リンクから動作するようになりました。
<body>
<ui:define name="metadata">
<f:view>
<f:metadata>
<f:event type="preRenderView" listener="#{businessBean.init}" />
</f:metadata>
</f:view>
</ui:define>
<ui:composition template="#{navigationprops.soulard_2col_uprefs_template}">