AbstractCallMethod Class
- public abstract class AbstractCallMethod
extends AbstractBaseTag
An abstract base class for tags that are capable of reflectively
invoking methods. Specializations of this tag provide method
implementations that locate the object on which to invoke the
method and that handle any return value from the invoked
method.
The CallMethod
tag can have child tags of type
MethodParameter
; these tags must be in the same
order as the parameter list in the method signature of the
method that will be invoked. To invoke an overloaded method, the
property must be set to the String
name of the type to pass to the method. If the type attribute values
on nested MethodParameter
tags do not match any method signature,
an error will be reported in the page.
Attribute Descriptions |
Attribute | Required | Runtime Expression Evaluation | Data Bindable |
method | No | No | No |
The method to invoke on an object. |
failOnError | No | No | No |
A boolean that if true will cause the tag to report any method invocation errors in-line in the rendered page. |
resultId | No | No | No |
The PageContext attribute name where the result, if non-null, is stored. |
-
Hierarchy
-
Object
TagSupport
BodyTagSupport
AbstractBaseTag
AbstractCallMethod
-
All Implemented Interfaces
-
BodyTag
, IterationTag
, Serializable
, Tag
-
Direct Known Subclasses
-
CallControl
, CallMethod
Fields from com.bea.wlw.netui.tags.AbstractBaseTag |
ATTR_GENERAL , ATTR_GENERAL_EXPRESSION , ATTR_JAVASCRIPT , ATTR_STYLE , CLASS , ID , JAVASCRIPT_STATUS , NAME , NETUI_UNIQUE_CNT , ONCLICK , ONDBLCLICK , ONKEYDOWN , ONKEYPRESS , ONKEYUP , ONMOUSEDOWN , ONMOUSEMOVE , ONMOUSEOUT , ONMOUSEOVER , ONMOUSEUP , STYLE , TABINDEX
|
public void |
-
addParameter (String type, Object parameter)
- Add a paramter that will be passed as an argument to the method that
will be invoked.
|
public int |
-
doEndTag ()
- Reflectively invokes the method specified by the
method attribute,
AbstractCallMethod.getMethod() .
|
public int |
-
doStartTag ()
- Causes the body of this tag to be rendered; only
MethodParameter
tags are allowed to be contained inside of this tag.
|
protected Method |
-
findMethod (Object target, String methodName, boolean verifyTypes)
- The default findMethod implementation is an uncached search of all
of the methods available on the Class of the
target
|
public boolean |
-
getFailOnError ()
- Get whether or not errors invoking a method are reported in-line
when the tag renders.
|
public String |
-
getMethod ()
- Gets the name of the method to invoke on the target object.
|
protected abstract String |
-
getObjectName ()
- Get the name of the object that is the target of the invocation.
|
protected List |
-
getParameterNodes ()
- Internal, read-only property used by subclasses to get
the list of parameters to be used when reflectively
invoking a method.
|
public String |
-
getResultId ()
- Get the identifier at which the result of invoking the method can be
found.
|
protected void |
-
handleReturnValue (Object result)
A method that allows concrete classes to handle the result of the
reflective invocation in an implementation specific way.
|
protected void |
-
localRelease ()
- Reset all of the fields of this tag.
|
protected abstract Object |
-
resolveObject ()
Resolve the object on which the method should be invoked.
|
public void |
-
setFailOnError (boolean failOnError)
- Sets whether or not to report exceptions to the page when errors
occur invoking a method on an object.
|
public void |
-
setMethod (String method)
- Sets the name of a method to invoke on the target object.
|
public void |
-
setResultId (String resultId)
- Sets the identifier at which the result of invoking the method will
stored.
|
Methods from com.bea.wlw.netui.tags.AbstractBaseTag |
addTagIdMapping , evaluateAttributeToString , filter , filter , getJavaScriptUtils , getNearestForm , getScriptReporter , getTagName , getUserLocale , registerTagError , release , renderAttribute , rewriteName , write
|
Methods from javax.servlet.jsp.tagext.TagSupport |
doAfterBody, doEndTag, doStartTag, findAncestorWithClass, getId, getParent, getValue, getValues, release, removeValue, setId, setPageContext, setParent, setValue |
Methods from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AbstractCallMethod
public AbstractCallMethod()
addParameter(String, Object) Method
public void addParameter(String
type,
Object
parameter)
Add a paramter that will be passed as an argument to the method that
will be invoked. This method is implemented to allow the
the MethodParameter
tags to register
their parameters. This object is passed in the position that it
appeared in the set of child MethodParameter
tags.
Parameters
-
type
- a String of the type or class name of this parameter
-
parameter
- an object that should be passed as an argument to the invoked method
Related Topics
MethodParameter
doEndTag() Method
public int doEndTag()
throws JspException
Reflectively invokes the method specified by the method
attribute,
AbstractCallMethod.getMethod()
. The arguments passed to the method are taken from any nested
MethodParameter
tags. When the parameters which are added by the
MethodParameter
tags are String
types, an attempt is made
to convert each of these parameters into the type expected by the method. This
conversion is done using the TypeUtils.convertToObject(String, Class)
method. If a String can not be converted do the type expected by the method,
an exception is thrown and the error is reported in the tag. Any return value
that results from invoking the given method is passed to the subclass implementation
of the method AbstractCallMethod.handleReturnValue(Object)
.
-
Overrides
-
BodyTagSupport.doEndTag()
Returns
- EVAL_PAGE to continue evaluating the page
Exceptions
-
JspException
- if there are errors. All exceptions that may be thrown
in the process of reflectively invoking the method and performing type
conversion are reported as @see javax.servlet.jsp.JspException.
Related Topics
AbstractCallMethod.getMethod()
AbstractCallMethod.handleReturnValue(Object)
MethodParameter
ObjectNotFoundException
TypeUtils.convertToObject(String, Class)
String
doStartTag() Method
public int doStartTag()
throws JspException
Causes the body of this tag to be rendered; only MethodParameter
tags are allowed to be contained inside of this tag. The body content is
never rendered.
-
Overrides
-
BodyTagSupport.doStartTag()
Returns
- EVAL_BODY_BUFFERED
Exceptions
-
JspException
Related Topics
MethodParameter
findMethod(Object, String, boolean) Method
protected Method
findMethod(Object
target,
String
methodName,
boolean verifyTypes)
The default findMethod implementation is an uncached search of all
of the methods available on the Class of the target
Parameters
-
target
- the object from which to find the method
-
methodName
- the name of the method to find
-
verifyTypes
- a boolean that if true will match the type names in addition to the String method name
Returns
- a Method object matching the methodName and types, if
verifyTypes
is true.
null
otherwise.
getFailOnError() Method
public boolean getFailOnError()
Get whether or not errors invoking a method are reported in-line
when the tag renders.
Returns
- a boolean that if true will report errors encountered during
the tag's execution.
getMethod() Method
public String
getMethod()
Gets the name of the method to invoke on the target object.
Returns
- the name of the method to invoke
getObjectName() Method
protected abstract String
getObjectName()
Get the name of the object that is the target of the invocation. This is
a generic method for this tag that enables more specific error reporting.
Returns
- a name for the object on which the method will be invoked.
getParameterNodes() Method
protected List
getParameterNodes()
Internal, read-only property used by subclasses to get
the list of parameters to be used when reflectively
invoking a method. If the method takes no parameters, this
list will be of size zero.
Returns
- the list of parameters
getResultId() Method
public String
getResultId()
Get the identifier at which the result of invoking the method can be
found.
Returns
- a String where the result object can be found in the PageContext
attribute map.
handleReturnValue(Object) Method
protected void handleReturnValue(Object
result)
A method that allows concrete classes to handle the result of the
reflective invocation in an implementation specific way.
The default beahavior is to set the return value resulting from invoking the method
in the PageContext
attribute map of the current JSP page.
The result is set as an attribute if the result
is not null and the
CallMethod.getResultId()
String is not null. If the value returned
from calling a method is null and the CallMethod.getResultId()
is non-null,
the
is called to remove the attribute from the attribute map.
Parameters
-
result
- the object that was returned by calling the method on the object
localRelease() Method
protected void localRelease()
Reset all of the fields of this tag.
-
Overrides
-
AbstractBaseTag.localRelease()
resolveObject() Method
protected abstract Object
resolveObject()
throws ObjectNotFoundException
Resolve the object on which the method should be invoked. If there are
errors resolving this object, this method will throw an ObjectNotFoundException
.
If the object is not found but no exception occurred, this method should return null.
Returns
- the object on which to reflectively invoke the method.
Exceptions
-
ObjectNotFoundException
- if an exception occurred attempting to resolve an object
setFailOnError(boolean) Method
public void setFailOnError(boolean failOnError)
Sets whether or not to report exceptions to the page when errors
occur invoking a method on an object.
Parameters
-
failOnError
- a boolean that defines whether or not exceptions
should be thrown when invocation fails.
setMethod(String) Method
public void setMethod(String
method)
Sets the name of a method to invoke on the target object.
Parameters
-
method
- the name of the method to invoke
setResultId(String) Method
public void setResultId(String
resultId)
Sets the identifier at which the result of invoking the method will
stored.
Parameters
-
resultId
- a String that names an attribute in the PageContext's
attribute map where any resulting object will be stored.