An ELResolver
for resolving user or container managed beans.
A BeanNameResolver
is required for its proper operation. The following example creates an
ELResolver
that resolves the name "bean" to an instance of MyBean.
ELResovler elr = new BeanNameELResolver(new BeanNameResolver {
public boolean isNameResolved(String beanName) {
return "bean".equals(beanName);
}
public Object getBean(String beanName) {
return "bean".equals(beanName)? new MyBean(): null;
}
});
- Since:
- Jakarta Expression Language 3.0
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionClass
<?> getCommonPropertyType
(ELContext context, Object base) Always returnsString.class
, since a bean name is a String.Class
<?> If the base is null and the property is a name resolvable by the BeanNameResolver, return the type of the bean.If the base object isnull
and the property is a name that is resolvable by the BeanNameResolver, returns the value resolved by the BeanNameResolver.boolean
isReadOnly
(ELContext context, Object base, Object property) If the base is null and the property is a name resolvable by the BeanNameResolver, attempts to determine if the bean is writable.void
If the base is null and the property is a name that is resolvable by the BeanNameResolver, the bean in the BeanNameResolver is set to the given value.Methods inherited from class jakarta.el.ELResolver
convertToType, invoke
-
Constructor Details
-
BeanNameELResolver
Constructor- Parameters:
beanNameResolver
- TheBeanNameResolver
that resolves a bean name.
-
-
Method Details
-
getValue
If the base object isnull
and the property is a name that is resolvable by the BeanNameResolver, returns the value resolved by the BeanNameResolver.If name is resolved by the BeanNameResolver, the
propertyResolved
property of theELContext
object must be set totrue
by this resolver, before returning. If this property is nottrue
after this method is called, the caller should ignore the return value.- Specified by:
getValue
in classELResolver
- Parameters:
context
- The context of this evaluation.base
-null
property
- The name of the bean.- Returns:
- If the
propertyResolved
property ofELContext
was set totrue
, then the value of the bean with the given name. Otherwise, undefined. - Throws:
NullPointerException
- if context isnull
.ELException
- if an exception was thrown while performing the property or variable resolution. The thrown exception must be included as the cause property of this exception, if available.
-
setValue
If the base is null and the property is a name that is resolvable by the BeanNameResolver, the bean in the BeanNameResolver is set to the given value.If the name is resolvable by the BeanNameResolver, or if the BeanNameResolver allows creating a new bean, the
propertyResolved
property of theELContext
object must be set totrue
by the resolver, before returning. If this property is nottrue
after this method is called, the caller can safely assume no value has been set.- Specified by:
setValue
in classELResolver
- Parameters:
context
- The context of this evaluation.base
-null
property
- The name of the beanvalue
- The value to set the bean with the given name to.- Throws:
NullPointerException
- if context isnull
PropertyNotWritableException
- if the BeanNameResolver does not allow the bean to be modified.ELException
- if an exception was thrown while attempting to set the bean with the given name. The thrown exception must be included as the cause property of this exception, if available.
-
getType
If the base is null and the property is a name resolvable by the BeanNameResolver, return the type of the bean.If the name is resolvable by the BeanNameResolver, the
propertyResolved
property of theELContext
object must be set totrue
by the resolver, before returning. If this property is nottrue
after this method is called, the caller can safely assume no value has been set.- Specified by:
getType
in classELResolver
- Parameters:
context
- The context of this evaluation.base
-null
property
- The name of the bean.- Returns:
- If the
propertyResolved
property ofELContext
was set totrue
and the associated BeanNameResolver is not read-only then the type of the bean with the given name. If the given bean name was resolved but the associated BeanNameResolver is read-only thennull
. Otherwise, undefined. - Throws:
NullPointerException
- if context isnull
.ELException
- if an exception was thrown while performing the property or variable resolution. The thrown exception must be included as the cause property of this exception, if available.
-
isReadOnly
If the base is null and the property is a name resolvable by the BeanNameResolver, attempts to determine if the bean is writable.If the name is resolvable by the BeanNameResolver, the
propertyResolved
property of theELContext
object must be set totrue
by the resolver, before returning. If this property is nottrue
after this method is called, the caller can safely assume no value has been set.- Specified by:
isReadOnly
in classELResolver
- Parameters:
context
- The context of this evaluation.base
-null
property
- The name of the bean.- Returns:
- If the
propertyResolved
property ofELContext
was set totrue
, thentrue
if the property is read-only orfalse
if not; otherwise undefined. - Throws:
NullPointerException
- if context isnull
.ELException
- if an exception was thrown while performing the property or variable resolution. The thrown exception must be included as the cause property of this exception, if available.
-
getCommonPropertyType
Always returnsString.class
, since a bean name is a String.- Specified by:
getCommonPropertyType
in classELResolver
- Parameters:
context
- The context of this evaluation.base
-null
.- Returns:
String.class
.
-