类 DelegatingNavigationHandlerProxy
- java.lang.Object
- javax.faces.application.NavigationHandler
- org.springframework.web.jsf.DelegatingNavigationHandlerProxy
public class DelegatingNavigationHandlerProxy extends NavigationHandler
JSF NavigationHandler implementation that delegates to a NavigationHandler bean obtained from the Spring root WebApplicationContext.Configure this handler proxy in your
faces-config.xml
file as follows:<application> ... <navigation-handler> org.springframework.web.jsf.DelegatingNavigationHandlerProxy </navigation-handler> ... </application>
By default, the Spring ApplicationContext will be searched for the NavigationHandler under the bean name "jsfNavigationHandler". In the simplest case, this is a plain Spring bean definition like the following. However, all of Spring's bean configuration power can be applied to such a bean, in particular all flavors of dependency injection.<bean name="jsfNavigationHandler" class="mypackage.MyNavigationHandler"> <property name="myProperty" ref="myOtherBean"/> </bean>
The target NavigationHandler bean will typically extend the standard JSF NavigationHandler class. However, note that decorating the original NavigationHandler (the JSF provider's default handler) is not supported in such a scenario, since we can't inject the original handler in standard JSF style (that is, as constructor argument).For decorating the original NavigationHandler, make sure that your target bean extends Spring's DecoratingNavigationHandler class. This allows to pass in the original handler as method argument, which this proxy automatically detects. Note that a DecoratingNavigationHandler subclass will still work as standard JSF NavigationHandler as well!
This proxy may be subclassed to change the bean name used to search for the navigation handler, change the strategy used to obtain the target handler, or change the strategy used to access the ApplicationContext (normally obtained via
FacesContextUtils.getWebApplicationContext(FacesContext)
).- 从以下版本开始:
- 1.2.7
- 作者:
- Juergen Hoeller, Colin Sampaleanu
- 另请参阅:
DecoratingNavigationHandler
字段概要
字段 修饰符和类型 字段 说明 static String
DEFAULT_TARGET_BEAN_NAME
Default name of the target bean in the Spring application context: "jsfNavigationHandler"
构造器概要
构造器 构造器 说明 DelegatingNavigationHandlerProxy()
Create a new DelegatingNavigationHandlerProxy.DelegatingNavigationHandlerProxy(NavigationHandler originalNavigationHandler)
Create a new DelegatingNavigationHandlerProxy.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected BeanFactory
getBeanFactory(FacesContext facesContext)
Retrieve the Spring BeanFactory to delegate bean name resolution to.protected NavigationHandler
getDelegate(FacesContext facesContext)
Return the target NavigationHandler to delegate to.protected String
getTargetBeanName(FacesContext facesContext)
Return the name of the target NavigationHandler bean in the BeanFactory.protected WebApplicationContext
getWebApplicationContext(FacesContext facesContext)
Retrieve the web application context to delegate bean name resolution to.void
handleNavigation(FacesContext facesContext, String fromAction, String outcome)
Handle the navigation request implied by the specified parameters, through delegating to the target bean in the Spring application context.从类继承的方法 javax.faces.application.NavigationHandler
handleNavigation
字段详细资料
DEFAULT_TARGET_BEAN_NAME
public static final String DEFAULT_TARGET_BEAN_NAME
Default name of the target bean in the Spring application context: "jsfNavigationHandler"- 另请参阅:
- 常量字段值
构造器详细资料
DelegatingNavigationHandlerProxy
public DelegatingNavigationHandlerProxy()
Create a new DelegatingNavigationHandlerProxy.
DelegatingNavigationHandlerProxy
public DelegatingNavigationHandlerProxy(NavigationHandler originalNavigationHandler)
Create a new DelegatingNavigationHandlerProxy.- 参数:
originalNavigationHandler
- the original NavigationHandler
方法详细资料
handleNavigation
public void handleNavigation(FacesContext facesContext, String fromAction, String outcome)
Handle the navigation request implied by the specified parameters, through delegating to the target bean in the Spring application context.The target bean needs to extend the JSF NavigationHandler class. If it extends Spring's DecoratingNavigationHandler, the overloaded
handleNavigation
method with the original NavigationHandler as argument will be used. Else, the standardhandleNavigation
method will be called.- 指定者:
handleNavigation
在类中NavigationHandler
getDelegate
protected NavigationHandler getDelegate(FacesContext facesContext)
Return the target NavigationHandler to delegate to.By default, a bean with the name "jsfNavigationHandler" is obtained from the Spring root WebApplicationContext, for every invocation.
- 参数:
facesContext
- the current JSF context- 返回:
- the target NavigationHandler to delegate to
- 另请参阅:
getTargetBeanName(javax.faces.context.FacesContext)
,getBeanFactory(javax.faces.context.FacesContext)
getTargetBeanName
protected String getTargetBeanName(FacesContext facesContext)
Return the name of the target NavigationHandler bean in the BeanFactory. Default is "jsfNavigationHandler".- 参数:
facesContext
- the current JSF context- 返回:
- the name of the target bean
getBeanFactory
protected BeanFactory getBeanFactory(FacesContext facesContext)
Retrieve the Spring BeanFactory to delegate bean name resolution to.Default implementation delegates to
getWebApplicationContext
. Can be overridden to provide an arbitrary BeanFactory reference to resolve against; usually, this will be a full Spring ApplicationContext.- 参数:
facesContext
- the current JSF context- 返回:
- the Spring BeanFactory (never
null
) - 另请参阅:
getWebApplicationContext(javax.faces.context.FacesContext)
getWebApplicationContext
protected WebApplicationContext getWebApplicationContext(FacesContext facesContext)
Retrieve the web application context to delegate bean name resolution to.Default implementation delegates to FacesContextUtils.
- 参数:
facesContext
- the current JSF context- 返回:
- the Spring web application context (never
null
) - 另请参阅:
FacesContextUtils.getRequiredWebApplicationContext(javax.faces.context.FacesContext)