|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.faces.el.VariableResolver org.springframework.web.jsf.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 middle tier 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>Note: Spring's JSF support has been developed and tested against JSF 1.1. Unfortunately, the JSF 1.1 RI (as of June 2004) does not apply a custom VariableResolver to property values of JSF-managed beans: This has to be considered a bug, as it is supposed to work according to the JSF spec. It does work in MyFaces 1.0.5, for example.
FacesContextUtils.getRequiredWebApplicationContext(javax.faces.context.FacesContext)
Field Summary | |
protected Log |
logger
|
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 javax.faces.el.VariableResolver |
getOriginalVariableResolver()
Return the original 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)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected final 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
javax.faces.el.EvaluationException
protected WebApplicationContext getWebApplicationContext(javax.faces.context.FacesContext facesContext)
facesContext
- the current JSF context
FacesContextUtils.getRequiredWebApplicationContext(javax.faces.context.FacesContext)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |