| 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) ).
author: Juergen Hoeller author: Colin Sampaleanu since: 1.2.7 See Also: DecoratingNavigationHandler |