これを達成するにはさまざまな方法があります。まず、「Facelets ページが読み込まれるとき」の意味を定義する必要があります。ページがレンダリングされる前という意味だと思います。
PreRenderViewEvent
JSF 2.x でこれを行う最も簡単な方法は、 のシステム イベント リスナですPreRenderViewEvent
。このためには、最初に次のf:event
ようなタグがページに必要です。
<f:event type="javax.faces.event.PreRenderViewEvent"
listener="#{bean.preRenderView}"/>
のリスナーはPreRenderViewEvent
、ビュー ルート ( ) に登録する必要がありますf:view
。したがって、を使用しない場合f:event
は、の直接の子f:view
またはどこかのトップ レベルである必要がありますf:view
。With templatingは、同じことを保証するf:event
内に配置する必要があります。ui:define
属性で参照されるリスナー メソッドlistener
は、ビューがレンダリングされる前に呼び出されます。メソッドは次のようになります。
public void preRenderView(ComponentSystemEvent ev) {
//Do something
}
@PreRenderView
MyFaces CODI で CDI を使用する場合、マネージド Bean メソッドにアノテーションを付けるだけで@PreRenderView
、ページがレンダリングされる前に呼び出されます。
アクションを見る
JSF 2.2 (まだ最終版ではありません) では、ビュー アクションを使用して、ライフサイクルのさまざまな段階でメソッドを呼び出すことができます。詳細については、JSF 2.2 ビュー アクションに関する私のJSFlive 投稿を参照してください。
私のGitHub リポジトリPreRenderViewEvent
でアクションの例を見つけて表示することができます