ImplicitObjectELResolverpublic class ImplicitObjectELResolver extends ELResolver Defines variable resolution behavior for the EL implicit objects
defined in the JSP specification.
The following variables are resolved by this ELResolver ,
as per the JSP specification:
pageContext - the PageContext object.
pageScope - a Map that maps page-scoped
attribute names to their values.
requestScope - a Map that maps
request-scoped attribute names to their values.
sessionScope - a Map that maps
session-scoped attribute names to their values.
applicationScope - a Map that maps
application-scoped attribute names to their values.
param - a Map that maps parameter
names to a single String parameter value (obtained by calling
ServletRequest.getParameter(String name)).
paramValues - a Map that maps parameter
names to a String[] of all values for that
parameter (obtained by calling
ServletRequest.getParameterValues(String name)) .
header - a Map that maps header names
to a single String header value (obtained by calling
HttpServletRequest.getHeader(String name)) .
headerValues - a Map that maps header
names to a String[] of all values for that header
(obtained by calling
HttpServletRequest.getHeaders(String)) .
cookie - a Map that maps cookie names
to a single Cookie object. Cookies are retrieved
according to the semantics of
HttpServletRequest.getCookies() . If the same name
is shared by multiple cookies, an implementation must use the
first one encountered in the array of Cookie objects
returned by the getCookies() method. However, users
of the cookie implicit object must be aware that the ordering
of cookies is currently unspecified in the servlet
specification.
initParam - a Map that maps context
initialization parameter names to their String parameter
value (obtained by calling
ServletContext.getInitParameter(String name)) .
|
Methods Summary |
---|
public java.lang.Class | getCommonPropertyType(javax.el.ELContext context, java.lang.Object base)If the base object is null , returns
String.class . Otherwise, returns null .
if (base == null) {
return String.class;
}
return null;
| public java.util.Iterator | getFeatureDescriptors(javax.el.ELContext context, java.lang.Object base)If the base object is null , and the property matches
the name of a JSP implicit object, returns an Iterator
containing FeatureDescriptor objects with information
about each JSP implicit object resolved by this resolver. Otherwise,
returns null .
The Iterator returned must contain one instance of
{@link java.beans.FeatureDescriptor} for each of the EL implicit objects
defined by the JSP spec. Each info object contains information about
a single implicit object, and is initialized as follows:
displayName - The name of the implicit object.
name - Same as displayName property.
shortDescription - A suitable description for the implicit
object. Will vary by implementation.
expert - false
hidden - false
preferred - true
In addition, the following named attributes must be set in the
returned FeatureDescriptor s:
{@link ELResolver#TYPE} - The runtime type of the implicit object.
{@link ELResolver#RESOLVABLE_AT_DESIGN_TIME} - true .
ArrayList<FeatureDescriptor> list =
new ArrayList<FeatureDescriptor>(11);
// pageContext
FeatureDescriptor descriptor = new FeatureDescriptor();
descriptor.setName("pageContext");
descriptor.setDisplayName("pageContext");
//descriptor.setShortDescription("");
descriptor.setExpert(false);
descriptor.setHidden(false);
descriptor.setPreferred(true);
descriptor.setValue("type", javax.servlet.jsp.PageContext.class);
descriptor.setValue("resolvableAtDesignTime", Boolean.TRUE);
list.add(descriptor);
// pageScope
descriptor = new FeatureDescriptor();
descriptor.setName("pageScope");
descriptor.setDisplayName("pageScope");
//descriptor.setShortDescription("");
descriptor.setExpert(false);
descriptor.setHidden(false);
descriptor.setPreferred(true);
descriptor.setValue("type", Map.class);
descriptor.setValue("resolvableAtDesignTime", Boolean.TRUE);
list.add(descriptor);
// requestScope
descriptor = new FeatureDescriptor();
descriptor.setName("requestScope");
descriptor.setDisplayName("requestScope");
//descriptor.setShortDescription("");
descriptor.setExpert(false);
descriptor.setHidden(false);
descriptor.setPreferred(true);
descriptor.setValue("type", Map.class);
descriptor.setValue("resolvableAtDesignTime", Boolean.TRUE);
list.add(descriptor);
// sessionScope
descriptor = new FeatureDescriptor();
descriptor.setName("sessionScope");
descriptor.setDisplayName("sessionScope");
//descriptor.setShortDescription("");
descriptor.setExpert(false);
descriptor.setHidden(false);
descriptor.setPreferred(true);
descriptor.setValue("type", Map.class);
descriptor.setValue("resolvableAtDesignTime", Boolean.TRUE);
list.add(descriptor);
// applicationScope
descriptor = new FeatureDescriptor();
descriptor.setName("applicationScope");
descriptor.setDisplayName("applicationScope");
//descriptor.setShortDescription("");
descriptor.setExpert(false);
descriptor.setHidden(false);
descriptor.setPreferred(true);
descriptor.setValue("type", Map.class);
descriptor.setValue("resolvableAtDesignTime", Boolean.TRUE);
list.add(descriptor);
// param
descriptor = new FeatureDescriptor();
descriptor.setName("param");
descriptor.setDisplayName("param");
//descriptor.setShortDescription("");
descriptor.setExpert(false);
descriptor.setHidden(false);
descriptor.setPreferred(true);
descriptor.setValue("type", Map.class);
descriptor.setValue("resolvableAtDesignTime", Boolean.TRUE);
list.add(descriptor);
// paramValues
descriptor = new FeatureDescriptor();
descriptor.setName("paramValues");
descriptor.setDisplayName("paramValues");
//descriptor.setShortDescription("");
descriptor.setExpert(false);
descriptor.setHidden(false);
descriptor.setPreferred(true);
descriptor.setValue("type", Map.class);
descriptor.setValue("resolvableAtDesignTime", Boolean.TRUE);
list.add(descriptor);
// header
descriptor = new FeatureDescriptor();
descriptor.setName("header");
descriptor.setDisplayName("header");
//descriptor.setShortDescription("");
descriptor.setExpert(false);
descriptor.setHidden(false);
descriptor.setPreferred(true);
descriptor.setValue("type", Map.class);
descriptor.setValue("resolvableAtDesignTime", Boolean.TRUE);
list.add(descriptor);
// headerValues
descriptor = new FeatureDescriptor();
descriptor.setName("headerValues");
descriptor.setDisplayName("headerValues");
//descriptor.setShortDescription("");
descriptor.setExpert(false);
descriptor.setHidden(false);
descriptor.setPreferred(true);
descriptor.setValue("type", Map.class);
descriptor.setValue("resolvableAtDesignTime", Boolean.TRUE);
list.add(descriptor);
// cookie
descriptor = new FeatureDescriptor();
descriptor.setName("cookie");
descriptor.setDisplayName("cookie");
//descriptor.setShortDescription("");
descriptor.setExpert(false);
descriptor.setHidden(false);
descriptor.setPreferred(true);
descriptor.setValue("type", Map.class);
descriptor.setValue("resolvableAtDesignTime", Boolean.TRUE);
list.add(descriptor);
// initParam
descriptor = new FeatureDescriptor();
descriptor.setName("initParam");
descriptor.setDisplayName("initParam");
//descriptor.setShortDescription("");
descriptor.setExpert(false);
descriptor.setHidden(false);
descriptor.setPreferred(true);
descriptor.setValue("type", Map.class);
descriptor.setValue("resolvableAtDesignTime", Boolean.TRUE);
list.add(descriptor);
return list.iterator();
| public java.lang.Class | getType(javax.el.ELContext context, java.lang.Object base, java.lang.Object property)If the base object is null , and the property matches
the name of a JSP implicit object, returns null to
indicate that no types are ever accepted to setValue() .
The propertyResolved property of the
ELContext object must be set to true by
this resolver before returning if an implicit object is matched. If
this property is not true after this method is called,
the caller should ignore the return value.
if (context == null) {
throw new NullPointerException();
}
if ((base == null) && ("pageContext".equals(property) ||
"pageScope".equals(property)) ||
"requestScope".equals(property) ||
"sessionScope".equals(property) ||
"applicationScope".equals (property) ||
"param".equals (property) ||
"paramValues".equals (property) ||
"header".equals (property) ||
"headerValues".equals (property) ||
"initParam".equals (property) ||
"cookie".equals (property)) {
context.setPropertyResolved(true);
}
return null;
| public java.lang.Object | getValue(javax.el.ELContext context, java.lang.Object base, java.lang.Object property)If the base object is null , and the property matches
the name of a JSP implicit object, returns the implicit object.
The propertyResolved property of the
ELContext object must be set to true by
this resolver before returning if an implicit object is matched. If
this property is not true after this method is called,
the caller should ignore the return value.
if (context == null) {
throw new NullPointerException();
}
if (base != null) {
return null;
}
PageContext ctxt = (PageContext)context.getContext(JspContext.class);
if ("pageContext".equals(property)) {
context.setPropertyResolved(true);
return ctxt;
}
ImplicitObjects implicitObjects =
ImplicitObjects.getImplicitObjects(ctxt);
if ("pageScope".equals(property)) {
context.setPropertyResolved(true);
return implicitObjects.getPageScopeMap();
}
if ("requestScope".equals(property)) {
context.setPropertyResolved(true);
return implicitObjects.getRequestScopeMap();
}
if ("sessionScope".equals(property)) {
context.setPropertyResolved(true);
return implicitObjects.getSessionScopeMap();
}
if ("applicationScope".equals (property)) {
context.setPropertyResolved(true);
return implicitObjects.getApplicationScopeMap ();
}
if ("param".equals (property)) {
context.setPropertyResolved(true);
return implicitObjects.getParamMap();
}
if ("paramValues".equals (property)) {
context.setPropertyResolved(true);
return implicitObjects.getParamsMap();
}
if ("header".equals (property)) {
context.setPropertyResolved(true);
return implicitObjects.getHeaderMap();
}
if ("headerValues".equals (property)) {
context.setPropertyResolved(true);
return implicitObjects.getHeadersMap();
}
if ("initParam".equals (property)) {
context.setPropertyResolved(true);
return implicitObjects.getInitParamMap ();
}
if ("cookie".equals (property)) {
context.setPropertyResolved(true);
return implicitObjects.getCookieMap ();
}
return null;
| public boolean | isReadOnly(javax.el.ELContext context, java.lang.Object base, java.lang.Object property)If the base object is null , and the property matches
the name of a JSP implicit object, returns true
to indicate that implicit objects cannot be overwritten.
The propertyResolved property of the
ELContext object must be set to true by
this resolver before returning if an implicit object is matched. If
this property is not true after this method is called,
the caller should ignore the return value.
if (context == null) {
throw new NullPointerException();
}
if ((base == null) && ("pageContext".equals(property) ||
"pageScope".equals(property)) ||
"requestScope".equals(property) ||
"sessionScope".equals(property) ||
"applicationScope".equals (property) ||
"param".equals (property) ||
"paramValues".equals (property) ||
"header".equals (property) ||
"headerValues".equals (property) ||
"initParam".equals (property) ||
"cookie".equals (property)) {
context.setPropertyResolved(true);
return true;
}
return false; // Doesn't matter
| public void | setValue(javax.el.ELContext context, java.lang.Object base, java.lang.Object property, java.lang.Object val)If the base object is null , and the property matches
the name of a JSP implicit object, throws
PropertyNotWritableException to indicate that implicit
objects cannot be overwritten.
The propertyResolved property of the
ELContext object must be set to true by
this resolver before returning if an implicit object is matched. If
this property is not true after this method is called,
the caller should ignore the return value.
if (context == null) {
throw new NullPointerException();
}
if ((base == null) && ("pageContext".equals(property) ||
"pageScope".equals(property)) ||
"requestScope".equals(property) ||
"sessionScope".equals(property) ||
"applicationScope".equals (property) ||
"param".equals (property) ||
"paramValues".equals (property) ||
"header".equals (property) ||
"headerValues".equals (property) ||
"initParam".equals (property) ||
"cookie".equals (property)) {
throw new PropertyNotWritableException();
}
|
|