public class DelegatingPhaseListenerMulticaster extends ObjectSE implements PhaseListenerEE
次のように、faces-config.xml
ファイルでこのリスナーマルチキャスターを構成します。
<application> ... <phase-listener> org.springframework.web.jsf.DelegatingPhaseListenerMulticaster </phase-listener> ... </application>マルチキャストは、すべての
beforePhase
および afterPhase
イベントをすべてのターゲット PhaseListener Bean に委譲します。デフォルトでは、これらは単に型別に取得されます。PhaseListener インターフェースを実装する Spring ルート WebApplicationContext 内のすべての Bean がフェッチされ、呼び出されます。 メモ: このマルチキャスターの getPhaseId()
メソッドは常に ANY_PHASE
を返します。 ターゲットリスナー Bean によって公開されるフェーズ ID は無視されます。すべてのイベントはすべてのリスナーに伝播されます。
このマルチキャスターをサブクラス化して、リスナー Bean を取得するために使用される戦略を変更したり、ApplicationContext(通常は FacesContextUtils.getWebApplicationContext(FacesContext)
を介して取得)にアクセスするために使用される戦略を変更したりできます。
コンストラクターと説明 |
---|
DelegatingPhaseListenerMulticaster() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPhase(PhaseEventEE event) |
void | beforePhase(PhaseEventEE event) |
protected ListableBeanFactory | getBeanFactory(FacesContextEE facesContext) Bean 名前解決を委譲する Spring BeanFactory を取得します。 |
protected CollectionSE<PhaseListenerEE> | getDelegates(FacesContextEE facesContext) Spring ルート WebApplicationContext からデリゲート PhaseListener Bean を取得します。 |
PhaseIdEE | getPhaseId() |
protected WebApplicationContext | getWebApplicationContext(FacesContextEE facesContext) Bean 名前解決を委譲する Web アプリケーションコンテキストを取得します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public PhaseIdEE getPhaseId()
PhaseListenerEE
の getPhaseIdEE
public void beforePhase(PhaseEventEE event)
PhaseListenerEE
の beforePhaseEE
public void afterPhase(PhaseEventEE event)
PhaseListenerEE
の afterPhaseEE
protected CollectionSE<PhaseListenerEE> getDelegates(FacesContextEE facesContext)
facesContext
- 現在の JSF コンテキスト getBeanFactory(javax.faces.context.FacesContext)
, ListableBeanFactory.getBeansOfType(Class)
protected ListableBeanFactory getBeanFactory(FacesContextEE facesContext)
デフォルトの実装は getWebApplicationContext
に委譲します。オーバーライドして、解決する任意の ListableBeanFactory 参照を提供できます。通常、これは完全な Spring ApplicationContext になります。
facesContext
- 現在の JSF コンテキスト null
)getWebApplicationContext(javax.faces.context.FacesContext)
protected WebApplicationContext getWebApplicationContext(FacesContextEE facesContext)
デフォルトの実装は FacesContextUtils に委譲します。
facesContext
- 現在の JSF コンテキスト null
)FacesContextUtils.getRequiredWebApplicationContext(javax.faces.context.FacesContext)