| org.springframework.web.jsf.DelegatingVariableResolver
All known Subclasses: org.springframework.web.jsf.SpringBeanVariableResolver,
DelegatingVariableResolver | public class DelegatingVariableResolver extends VariableResolver (Code) | | JSF 1.1 VariableResolver that first delegates to the Spring
root WebApplicationContext , then to the original resolver
of the underlying JSF implementation.
Configure this resolver in your faces-config.xml file as follows:
<application>
...
<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
</application>
All your JSF expressions can then implicitly refer to the names of
Spring-managed service layer beans, for example in property values of
JSF-managed beans:
<managed-bean>
<managed-bean-name>myJsfManagedBean</managed-bean-name>
<managed-bean-class>example.MyJsfManagedBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>mySpringManagedBusinessObject</property-name>
<value>#{mySpringManagedBusinessObject}</value>
</managed-property>
</managed-bean>
with "mySpringManagedBusinessObject" defined as Spring bean in
applicationContext.xml:
<bean id="mySpringManagedBusinessObject" class="example.MySpringManagedBusinessObject">
...
</bean>
author: Juergen Hoeller since: 1.1 See Also: WebApplicationContextVariableResolver See Also: FacesContextUtils.getRequiredWebApplicationContext |
Constructor Summary | |
public | DelegatingVariableResolver(VariableResolver originalVariableResolver) Create a new DelegatingVariableResolver, using the given original VariableResolver. |
Method Summary | |
protected BeanFactory | getBeanFactory(FacesContext facesContext) Retrieve the Spring BeanFactory to delegate bean name resolution to. | final protected VariableResolver | getOriginalVariableResolver() Return the original JSF VariableResolver that this resolver delegates to. | protected WebApplicationContext | getWebApplicationContext(FacesContext facesContext) Retrieve the web application context to delegate bean name resolution to. | protected Object | resolveOriginal(FacesContext facesContext, String name) Resolve the attribute via the original JSF VariableResolver. | protected Object | resolveSpringBean(FacesContext facesContext, String name) Resolve the attribute as a Spring bean in the ApplicationContext. | public Object | resolveVariable(FacesContext facesContext, String name) Delegate to the original VariableResolver first, then try to
resolve the variable as Spring bean in the root WebApplicationContext. |
logger | final protected Log logger(Code) | | Logger available to subclasses
|
originalVariableResolver | final protected VariableResolver originalVariableResolver(Code) | | |
DelegatingVariableResolver | public DelegatingVariableResolver(VariableResolver originalVariableResolver)(Code) | | Create a new DelegatingVariableResolver, using the given original VariableResolver.
A JSF implementation will automatically pass its original resolver into the
constructor of a configured resolver, provided that there is a corresponding
constructor argument.
Parameters: originalVariableResolver - the original VariableResolver |
getBeanFactory | protected BeanFactory getBeanFactory(FacesContext facesContext)(Code) | | Retrieve the Spring BeanFactory to delegate bean name resolution to.
The 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.
Parameters: facesContext - the current JSF context the Spring BeanFactory (never null ) See Also: DelegatingVariableResolver.getWebApplicationContext |
getOriginalVariableResolver | final protected VariableResolver getOriginalVariableResolver()(Code) | | Return the original JSF VariableResolver that this resolver delegates to.
Used to resolve standard JSF-managed beans.
|
getWebApplicationContext | protected WebApplicationContext getWebApplicationContext(FacesContext facesContext)(Code) | | Retrieve the web application context to delegate bean name resolution to.
The default implementation delegates to FacesContextUtils.
Parameters: facesContext - the current JSF context the Spring web application context (never null ) See Also: FacesContextUtils.getRequiredWebApplicationContext |
resolveOriginal | protected Object resolveOriginal(FacesContext facesContext, String name)(Code) | | Resolve the attribute via the original JSF VariableResolver.
|
resolveSpringBean | protected Object resolveSpringBean(FacesContext facesContext, String name)(Code) | | Resolve the attribute as a Spring bean in the ApplicationContext.
|
resolveVariable | public Object resolveVariable(FacesContext facesContext, String name) throws EvaluationException(Code) | | Delegate to the original VariableResolver first, then try to
resolve the variable as Spring bean in the root WebApplicationContext.
|
|
|