- java.lang.Object
-
- javax.el.Expression
-
- javax.el.MethodExpression
-
- All Implemented Interfaces:
- Serializable
public abstract class MethodExpression extends Expression
AnExpression
that refers to a method on an object.The
ExpressionFactory.createMethodExpression(javax.el.ELContext, java.lang.String, java.lang.Class<?>, java.lang.Class<?>[])
method can be used to parse an expression string and return a concrete instance ofMethodExpression
that encapsulates the parsed expression. TheFunctionMapper
is used at parse time, not evaluation time, so one is not needed to evaluate an expression using this class. However, theELContext
is needed at evaluation time.The
getMethodInfo(javax.el.ELContext)
andinvoke(javax.el.ELContext, java.lang.Object[])
methods will evaluate the expression each time they are called. TheELResolver
in theELContext
is used to resolve the top-level variables and to determine the behavior of the.
and[]
operators. For any of the two methods, theELResolver.getValue(javax.el.ELContext, java.lang.Object, java.lang.Object)
method is used to resolve all properties up to but excluding the last one. This provides thebase
object on which the method appears. If thebase
object is null, aPropertyNotFoundException
must be thrown. At the last resolution, the finalproperty
is then coerced to aString
, which provides the name of the method to be found. A method matching the name and expected parameters provided at parse time is found and it is either queried or invoked (depending on the method called on thisMethodExpression
).See the notes about comparison, serialization and immutability in the
Expression
javadocs.- Since:
- JSP 2.1
- See Also:
ELResolver
,Expression
,ExpressionFactory
, Serialized Form
-
-
Constructor Summary
Constructors Constructor and Description MethodExpression()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method and Description abstract MethodInfo
getMethodInfo(ELContext context)
Evaluates the expression relative to the provided context, and returns information about the actual referenced method.abstract Object
invoke(ELContext context, Object[] params)
If a String literal is specified as the expression, returns the String literal coerced to the expected return type of the method signature.boolean
isParametersProvided()
Return whether this MethodExpression was created with parameters.boolean
isParmetersProvided()
Deprecated.-
Methods inherited from class javax.el.Expression
equals, getExpressionString, hashCode, isLiteralText
-
-
-
-
Method Detail
-
getMethodInfo
public abstract MethodInfo getMethodInfo(ELContext context)
Evaluates the expression relative to the provided context, and returns information about the actual referenced method.- Parameters:
context
- The context of this evaluation- Returns:
- an instance of
MethodInfo
containing information about the method the expression evaluated to. - Throws:
NullPointerException
- if context isnull
PropertyNotFoundException
- if one of the property resolutions failed because a specified variable or property does not exist or is not readable.MethodNotFoundException
- if no suitable method can be found.ELException
- if an exception was thrown while performing property or variable resolution. The thrown exception must be included as the cause property of this exception, if available.
-
invoke
public abstract Object invoke(ELContext context, Object[] params)
If a String literal is specified as the expression, returns the String literal coerced to the expected return type of the method signature. AnELException
is thrown ifexpectedReturnType
is void or if the coercion of the String literal to theexpectedReturnType
yields an error (see Section "1.18 Type Conversion" of the EL specification). If not a String literal, evaluates the expression relative to the provided context, invokes the method that was found using the supplied parameters, and returns the result of the method invocation. Any parameters passed to this method is ignored if isLiteralText() or isParmetersProvided() is true.- Parameters:
context
- The context of this evaluation.params
- The parameters to pass to the method, ornull
if no parameters.- Returns:
- the result of the method invocation (
null
if the method has avoid
return type). - Throws:
NullPointerException
- if context isnull
PropertyNotFoundException
- if one of the property resolutions failed because a specified variable or property does not exist or is not readable.MethodNotFoundException
- if no suitable method can be found.ELException
- if a String literal is specified and expectedReturnType of the MethodExpression is void or if the coercion of the String literal to the expectedReturnType yields an error (see Section "1.18 Type Conversion").ELException
- if an exception was thrown while performing property or variable resolution. The thrown exception must be included as the cause property of this exception, if available. If the exception thrown is anInvocationTargetException
, extract itscause
and pass it to theELException
constructor.
-
isParametersProvided
public boolean isParametersProvided()
Return whether this MethodExpression was created with parameters.This method must return
true
if and only if parameters are specified in the EL, using the expr-a.expr-b(...) syntax.- Returns:
true
if the MethodExpression was created with parameters,false
otherwise.- Since:
- EL 2.2
-
isParmetersProvided
@Deprecated public boolean isParmetersProvided()
Deprecated.Use isParametersProvided instead.
-
-
Traduction non disponible
Les API Java ne sont pas encore traduites en français sur l'infobrol. Seule la version anglaise est disponible pour l'instant.
Version en cache
21/08/2025 15:07:18 Cette version de la page est en cache (à la date du 21/08/2025 15:07:18) afin d'accélérer le traitement.Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la version plus récente de la page.
Document créé le 07/12/2007, dernière modification le 18/08/2025
Source du document imprimé : https://www.gaudry.be/java-api-javaee-rf-javax/el/MethodExpression.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.