クラス DelegatingNavigationHandlerProxy
java.lang.ObjectSE
jakarta.faces.application.NavigationHandler
org.springframework.web.jsf.DelegatingNavigationHandlerProxy
Spring ルート WebApplicationContext から取得した NavigationHandler Bean に委譲する JSF NavigationHandler 実装。
faces-config.xml
ファイルでこのハンドラープロキシを次のように構成します。
<application> ... <navigation-handler> org.springframework.web.jsf.DelegatingNavigationHandlerProxy </navigation-handler> ... </application>デフォルトでは、Spring ApplicationContext は、Bean 名 "jsfNavigationHandler" で NavigationHandler を検索します。最も単純なケースでは、これは次のような単純な Spring Bean 定義です。ただし、Spring の Bean 構成機能のすべて、特に依存性注入のすべてのフレーバーをこのような Bean に適用できます。
<bean name="jsfNavigationHandler" class="mypackage.MyNavigationHandler"> <property name="myProperty" ref="myOtherBean"/> </bean>ターゲット NavigationHandler Bean は通常、標準の JSF NavigationHandler クラスを継承します。ただし、このようなシナリオでは、元の NavigationHandler(JSF プロバイダーのデフォルトハンドラー)の装飾はサポートされていないことに注意してください。これは、元のハンドラーを標準の JSF スタイルで(つまり、コンストラクター引数として)挿入できないためです。
元の NavigationHandler を装飾するには、ターゲット Bean が Spring の DecoratingNavigationHandler クラスを継承していることを確認してください。これにより、このプロキシが自動的に検出するメソッド引数として元のハンドラーを渡すことができます。DecoratingNavigationHandler サブクラスは引き続き標準の JSF NavigationHandler としても機能することに注意してください。
このプロキシは、ナビゲーションハンドラーの検索に使用される Bean 名の変更、ターゲットハンドラーの取得に使用される戦略の変更、または ApplicationContext へのアクセスに使用される戦略の変更(通常は FacesContextUtils.getWebApplicationContext(FacesContext)
を介して取得)にサブクラス化できます。
- 導入:
- 1.2.7
- 作成者:
- Juergen Hoeller, Colin Sampaleanu
- 関連事項:
フィールドサマリー
フィールド修飾子と型フィールド説明static final StringSE
Spring アプリケーションコンテキスト内のターゲット Bean のデフォルト名: "jsfNavigationHandler"。コンストラクターのサマリー
コンストラクターコンストラクター説明新しい DelegatingNavigationHandlerProxy を作成します。DelegatingNavigationHandlerProxy
(NavigationHandlerEE originalNavigationHandler) 新しい DelegatingNavigationHandlerProxy を作成します。方法の概要
修飾子と型メソッド説明protected BeanFactory
getBeanFactory
(FacesContextEE facesContext) Bean 名前解決を委譲する Spring BeanFactory を取得します。protected NavigationHandlerEE
getDelegate
(FacesContextEE facesContext) 委譲先のターゲット NavigationHandler を返します。protected StringSE
getTargetBeanName
(FacesContextEE facesContext) BeanFactory 内のターゲット NavigationHandler Bean の名前を返します。protected WebApplicationContext
getWebApplicationContext
(FacesContextEE facesContext) Bean 名前解決を委譲する Web アプリケーションコンテキストを取得します。void
handleNavigation
(FacesContextEE facesContext, StringSE fromAction, StringSE outcome) Spring アプリケーションコンテキストでターゲット Bean に委譲することにより、指定されたパラメーターによって暗示されるナビゲーションリクエストを処理します。クラス jakarta.faces.application.NavigationHandlerEE から継承されたメソッド
handleNavigationEE
フィールドの詳細
DEFAULT_TARGET_BEAN_NAME
Spring アプリケーションコンテキスト内のターゲット Bean のデフォルト名: "jsfNavigationHandler"。- 関連事項:
コンストラクターの詳細
DelegatingNavigationHandlerProxy
public DelegatingNavigationHandlerProxy()新しい DelegatingNavigationHandlerProxy を作成します。
メソッドの詳細
getDelegate
委譲先のターゲット NavigationHandler を返します。デフォルトでは、すべての呼び出しに対して、Spring ルート WebApplicationContext から "jsfNavigationHandler" という名前の Bean が取得されます。
- パラメーター:
facesContext
- 現在の JSF コンテキスト- 戻り値:
- 委譲先のターゲット NavigationHandler
- 関連事項:
getTargetBeanName
BeanFactory 内のターゲット NavigationHandler Bean の名前を返します。デフォルトは "jsfNavigationHandler" です。- パラメーター:
facesContext
- 現在の JSF コンテキスト- 戻り値:
- ターゲット Bean の名前
getBeanFactory
Bean 名前解決を委譲する Spring BeanFactory を取得します。デフォルトの実装は
getWebApplicationContext
に委譲します。オーバーライドして、解決する任意の BeanFactory 参照を提供できます。通常、これは完全な Spring ApplicationContext になります。- パラメーター:
facesContext
- 現在の JSF コンテキスト- 戻り値:
- Spring BeanFactory (非
null
) - 関連事項:
getWebApplicationContext
Bean 名前解決を委譲する Web アプリケーションコンテキストを取得します。デフォルトの実装は FacesContextUtils に委譲します。
- パラメーター:
facesContext
- 現在の JSF コンテキスト- 戻り値:
- Spring Web アプリケーションコンテキスト (非
null
) - 関連事項: