|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.faces.el.VariableResolver
org.springframework.web.jsf.DelegatingVariableResolver
public class DelegatingVariableResolver
JSF VariableResolver that first delegates to the original resolver of the underlying JSF implementation, then to the Spring root WebApplicationContext.
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>
WebApplicationContextVariableResolver
,
FacesContextUtils.getRequiredWebApplicationContext(javax.faces.context.FacesContext)
Field Summary | |
---|---|
protected org.apache.commons.logging.Log |
logger
Logger available to subclasses |
protected javax.faces.el.VariableResolver |
originalVariableResolver
|
Constructor Summary | |
---|---|
DelegatingVariableResolver(javax.faces.el.VariableResolver originalVariableResolver)
Create a new DelegatingVariableResolver, using the given original VariableResolver. |
Method Summary | |
---|---|
protected BeanFactory |
getBeanFactory(javax.faces.context.FacesContext facesContext)
Retrieve the Spring BeanFactory to delegate bean name resolution to. |
protected javax.faces.el.VariableResolver |
getOriginalVariableResolver()
Return the original JSF VariableResolver that this resolver delegates to. |
protected WebApplicationContext |
getWebApplicationContext(javax.faces.context.FacesContext facesContext)
Retrieve the web application context to delegate bean name resolution to. |
Object |
resolveVariable(javax.faces.context.FacesContext facesContext,
String name)
Delegate to the original VariableResolver first, then try to resolve the variable as Spring bean in the root WebApplicationContext. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final org.apache.commons.logging.Log logger
protected final javax.faces.el.VariableResolver originalVariableResolver
Constructor Detail |
---|
public DelegatingVariableResolver(javax.faces.el.VariableResolver originalVariableResolver)
A JSF implementation will automatically pass its original resolver into the constructor of a configured resolver, provided that there is a corresponding constructor argument.
originalVariableResolver
- the original VariableResolverMethod Detail |
---|
protected final javax.faces.el.VariableResolver getOriginalVariableResolver()
public Object resolveVariable(javax.faces.context.FacesContext facesContext, String name) throws javax.faces.el.EvaluationException
resolveVariable
in class javax.faces.el.VariableResolver
javax.faces.el.EvaluationException
protected BeanFactory getBeanFactory(javax.faces.context.FacesContext facesContext)
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
null
)getWebApplicationContext(javax.faces.context.FacesContext)
protected WebApplicationContext getWebApplicationContext(javax.faces.context.FacesContext facesContext)
Default implementation delegates to FacesContextUtils.
facesContext
- the current JSF context
null
)FacesContextUtils.getRequiredWebApplicationContext(javax.faces.context.FacesContext)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |