public class ScopedAttributeELResolver extends ELResolver
This resolver handles all variable resolutions (where base
is null
. It searches
PageContext.findAttribute()
for a matching attribute. If not found, it will return null
, or
in the case of setValue
it will create a new attribute in the page scope with the given name.
ELResolver
RESOLVABLE_AT_DESIGN_TIME, TYPE
Constructor and Description |
---|
ScopedAttributeELResolver() |
Modifier and Type | Method and Description |
---|---|
java.lang.Class<java.lang.String> |
getCommonPropertyType(ELContext context,
java.lang.Object base)
If the base object is
null , returns String.class . |
java.util.Iterator<java.beans.FeatureDescriptor> |
getFeatureDescriptors(ELContext context,
java.lang.Object base)
If the base object is
null , returns an Iterator containing
FeatureDescriptor objects with information about each scoped attribute resolved by this resolver. |
java.lang.Class<java.lang.Object> |
getType(ELContext context,
java.lang.Object base,
java.lang.Object property)
If the base object is
null , returns Object.class to indicate that any type is valid to
set for a scoped attribute. |
java.lang.Object |
getValue(ELContext context,
java.lang.Object base,
java.lang.Object property)
If the base object is
null , searches the page, request, session and application scopes for an
attribute with the given name and returns it, or null if no attribute exists with the current name. |
boolean |
isReadOnly(ELContext context,
java.lang.Object base,
java.lang.Object property)
If the base object is
null , returns false to indicate that scoped attributes are never
read-only. |
void |
setValue(ELContext context,
java.lang.Object base,
java.lang.Object property,
java.lang.Object val)
If the base object is
null , sets an existing scoped attribute to the new value, or creates a new
scoped attribute if one does not exist by this name. |
convertToType, invoke
public java.lang.Object getValue(ELContext context, java.lang.Object base, java.lang.Object property)
null
, searches the page, request, session and application scopes for an
attribute with the given name and returns it, or null
if no attribute exists with the current name.
The propertyResolved
property of the ELContext
object must be set to true
by this resolver before returning if base is null
. If this property is not true
after
this method is called, the caller should ignore the return value.
getValue
in class ELResolver
context
- The context of this evaluation.base
- Only null
is handled by this resolver. Other values will result in an immediate
return.property
- The name of the scoped attribute to resolve.propertyResolved
property of ELContext
was set to true
,
then the scoped attribute; otherwise undefined.java.lang.NullPointerException
- if context is null
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.public java.lang.Class<java.lang.Object> getType(ELContext context, java.lang.Object base, java.lang.Object property)
null
, returns Object.class
to indicate that any type is valid to
set for a scoped attribute.
The propertyResolved
property of the ELContext
object must be set to true
by this resolver before returning if base is null
. If this property is not true
after
this method is called, the caller should ignore the return value.
getType
in class ELResolver
context
- The context of this evaluation.base
- Only null
is handled by this resolver. Other values will result in an immediate
return.property
- The name of the scoped attribute to resolve.propertyResolved
property of ELContext
was set to true
,
then Object.class
; otherwise undefined.java.lang.NullPointerException
- if context is null
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.public void setValue(ELContext context, java.lang.Object base, java.lang.Object property, java.lang.Object val)
null
, sets an existing scoped attribute to the new value, or creates a new
scoped attribute if one does not exist by this name.
If the provided attribute name matches the key of an attribute in page scope, request scope, session scope, or application scope, the corresponding attribute value will be replaced by the provided value. Otherwise, a new page scope attribute will be created with the given name and value.
The propertyResolved
property of the ELContext
object must be set to true
by this resolver before returning if base is null
. If this property is not true
after
this method is called, the caller should ignore the return value.
setValue
in class ELResolver
context
- The context of this evaluation.base
- Only null
is handled by this resolver. Other values will result in an immediate
return.property
- The name of the scoped attribute to set.val
- The value for the scoped attribute.java.lang.NullPointerException
- if context is null
.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.public boolean isReadOnly(ELContext context, java.lang.Object base, java.lang.Object property)
null
, returns false
to indicate that scoped attributes are never
read-only.
The propertyResolved
property of the ELContext
object must be set to true
by this resolver before returning if base is null
. If this property is not true
after
this method is called, the caller should ignore the return value.
isReadOnly
in class ELResolver
context
- The context of this evaluation.base
- Only null
is handled by this resolver. Other values will result in an immediate
return.property
- The name of the scoped attribute.propertyResolved
property of ELContext
was set to true
,
then false
; otherwise undefined.java.lang.NullPointerException
- if context is null
.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.public java.util.Iterator<java.beans.FeatureDescriptor> getFeatureDescriptors(ELContext context, java.lang.Object base)
null
, returns an Iterator
containing
FeatureDescriptor
objects with information about each scoped attribute resolved by this resolver.
Otherwise, returns null
.
The Iterator
returned must contain one instance of FeatureDescriptor
for each
scoped attribute found in any scope. Each info object contains information about a single scoped attribute, and
is initialized as follows:
false
false
true
FeatureDescriptor
s:
ELResolver.TYPE
ELResolver.RESOLVABLE_AT_DESIGN_TIME
true
.getFeatureDescriptors
in class ELResolver
context
- The context of this evaluation.base
- Only null
is handled by this resolver. Other values will result in a
null
return value.Iterator
containing one FeatureDescriptor
object for each scoped attribute,
or null
if base
is not null
.FeatureDescriptor
public java.lang.Class<java.lang.String> getCommonPropertyType(ELContext context, java.lang.Object base)
null
, returns String.class
. Otherwise, returns null
.getCommonPropertyType
in class ELResolver
context
- The context of this evaluation.base
- Only null
is handled by this resolver. Other values will result in a
null
return value.null
if base is not null
; otherwise String.class
.