クラス DelegatingNavigationHandlerProxy
java.lang.ObjectSE
jakarta.faces.application.NavigationHandler
org.springframework.web.jsf.DelegatingNavigationHandlerProxy
public class DelegatingNavigationHandlerProxy
extends jakarta.faces.application.NavigationHandler
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 StringSESpring アプリケーションコンテキスト内のターゲット Bean のデフォルト名: "jsfNavigationHandler"。コンストラクター概要
コンストラクターコンストラクター説明新しい DelegatingNavigationHandlerProxy を作成します。DelegatingNavigationHandlerProxy(jakarta.faces.application.NavigationHandler originalNavigationHandler) 新しい DelegatingNavigationHandlerProxy を作成します。方法の概要
修飾子と型メソッド説明protected BeanFactorygetBeanFactory(jakarta.faces.context.FacesContext facesContext) Bean 名前解決を委譲する Spring BeanFactory を取得します。protected jakarta.faces.application.NavigationHandlergetDelegate(jakarta.faces.context.FacesContext facesContext) 委譲先のターゲット NavigationHandler を返します。protected StringSEgetTargetBeanName(jakarta.faces.context.FacesContext facesContext) BeanFactory 内のターゲット NavigationHandler Bean の名前を返します。protected WebApplicationContextgetWebApplicationContext(jakarta.faces.context.FacesContext facesContext) Bean 名前解決を委譲する Web アプリケーションコンテキストを取得します。voidhandleNavigation(jakarta.faces.context.FacesContext facesContext, StringSE fromAction, StringSE outcome) Spring アプリケーションコンテキストでターゲット Bean に委譲することにより、指定されたパラメーターによって暗示されるナビゲーションリクエストを処理します。クラス jakarta.faces.application.NavigationHandler から継承されたメソッド
handleNavigation
フィールドの詳細
DEFAULT_TARGET_BEAN_NAME
Spring アプリケーションコンテキスト内のターゲット Bean のデフォルト名: "jsfNavigationHandler"。- 関連事項:
コンストラクターの詳細
DelegatingNavigationHandlerProxy
public DelegatingNavigationHandlerProxy()新しい DelegatingNavigationHandlerProxy を作成します。
方法の詳細
getDelegate
protected jakarta.faces.application.NavigationHandler getDelegate(jakarta.faces.context.FacesContext facesContext) 委譲先のターゲット 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
protected WebApplicationContext getWebApplicationContext(jakarta.faces.context.FacesContext facesContext) Bean 名前解決を委譲する Web アプリケーションコンテキストを取得します。デフォルトの実装は FacesContextUtils に委譲します。
- パラメーター:
facesContext- 現在の JSF コンテキスト- 戻り値:
- Spring Web アプリケーションコンテキスト (決して
nullではない) - 関連事項: