blob: d426019690ef07ac27d3770fb7f40ddde0327544 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>ExpressionEvaluator</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ExpressionEvaluator";
}
}
catch(err) {
}
//-->
var methods = {"i0":38,"i1":38};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../jakarta/servlet/jsp/el/Expression.html" title="class in jakarta.servlet.jsp.el"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../jakarta/servlet/jsp/el/FunctionMapper.html" title="interface in jakarta.servlet.jsp.el"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?jakarta/servlet/jsp/el/ExpressionEvaluator.html" target="_top">Frames</a></li>
<li><a href="ExpressionEvaluator.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">jakarta.servlet.jsp.el</div>
<h2 title="Class ExpressionEvaluator" class="title">Class ExpressionEvaluator</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>jakarta.servlet.jsp.el.ExpressionEvaluator</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of JSP 2.1, replaced by <code>jakarta.el.ExpressionFactory</code></span></div>
</div>
<br>
<pre>@Deprecated
public abstract class <span class="typeNameLabel">ExpressionEvaluator</span>
extends java.lang.Object</pre>
<div class="block"><p>
The abstract base class for an expression-language evaluator. Classes that implement an expression language expose
their functionality via this abstract class.
</p>
<p>
An instance of the ExpressionEvaluator can be obtained via the JspContext / PageContext
</p>
<p>
The parseExpression() and evaluate() methods must be thread-safe. That is, multiple threads may call these methods on
the same ExpressionEvaluator object simultaneously. Implementations should synchronize access if they depend on
transient state. Implementations should not, however, assume that only one object of each ExpressionEvaluator type
will be instantiated; global caching should therefore be static.
</p>
<p>
Only a single EL expression, starting with '${' and ending with '}', can be parsed or evaluated at a time. EL
expressions cannot be mixed with static text. For example, attempting to parse or evaluate
"<code>abc${1+1}def${1+1}ghi</code>" or even "<code>${1+1}${1+1}</code>" will cause an <code>ELException</code> to be
thrown.
</p>
<p>
The following are examples of syntactically legal EL expressions:
</p>
<ul>
<li><code>${person.lastName}</code></li>
<li><code>${8 * 8}</code></li>
<li><code>${my:reverse('hello')}</code></li>
</ul></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JSP 2.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../jakarta/servlet/jsp/el/ExpressionEvaluator.html#ExpressionEvaluator--">ExpressionEvaluator</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../jakarta/servlet/jsp/el/ExpressionEvaluator.html#evaluate-java.lang.String-java.lang.Class-jakarta.servlet.jsp.el.VariableResolver-jakarta.servlet.jsp.el.FunctionMapper-">evaluate</a></span>(java.lang.String&nbsp;expression,
java.lang.Class&lt;?&gt;&nbsp;expectedType,
<a href="../../../../jakarta/servlet/jsp/el/VariableResolver.html" title="interface in jakarta.servlet.jsp.el">VariableResolver</a>&nbsp;vResolver,
<a href="../../../../jakarta/servlet/jsp/el/FunctionMapper.html" title="interface in jakarta.servlet.jsp.el">FunctionMapper</a>&nbsp;fMapper)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Evaluates an expression.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../jakarta/servlet/jsp/el/Expression.html" title="class in jakarta.servlet.jsp.el">Expression</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../jakarta/servlet/jsp/el/ExpressionEvaluator.html#parseExpression-java.lang.String-java.lang.Class-jakarta.servlet.jsp.el.FunctionMapper-">parseExpression</a></span>(java.lang.String&nbsp;expression,
java.lang.Class&lt;?&gt;&nbsp;expectedType,
<a href="../../../../jakarta/servlet/jsp/el/FunctionMapper.html" title="interface in jakarta.servlet.jsp.el">FunctionMapper</a>&nbsp;fMapper)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Prepare an expression for later evaluation.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ExpressionEvaluator--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ExpressionEvaluator</h4>
<pre>public&nbsp;ExpressionEvaluator()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="parseExpression-java.lang.String-java.lang.Class-jakarta.servlet.jsp.el.FunctionMapper-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseExpression</h4>
<pre>public abstract&nbsp;<a href="../../../../jakarta/servlet/jsp/el/Expression.html" title="class in jakarta.servlet.jsp.el">Expression</a>&nbsp;parseExpression(java.lang.String&nbsp;expression,
java.lang.Class&lt;?&gt;&nbsp;expectedType,
<a href="../../../../jakarta/servlet/jsp/el/FunctionMapper.html" title="interface in jakarta.servlet.jsp.el">FunctionMapper</a>&nbsp;fMapper)
throws <a href="../../../../jakarta/servlet/jsp/el/ELException.html" title="class in jakarta.servlet.jsp.el">ELException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Prepare an expression for later evaluation. This method should perform syntactic validation of the expression; if
in doing so it detects errors, it should raise an ELParseException.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The expression to be evaluated.</dd>
<dd><code>expectedType</code> - The expected type of the result of the evaluation</dd>
<dd><code>fMapper</code> - A FunctionMapper to resolve functions found in the expression. It can be null, in which case
no functions are supported for this invocation. The ExpressionEvaluator must not hold on to
the FunctionMapper reference after returning from <code>parseExpression()</code>. The
<code>Expression</code> object returned must invoke the same functions regardless of whether
the mappings in the provided <code>FunctionMapper</code> instance change between calling
<code>ExpressionEvaluator.parseExpression()</code> and <code>Expression.evaluate()</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The Expression object encapsulating the arguments.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../jakarta/servlet/jsp/el/ELException.html" title="class in jakarta.servlet.jsp.el">ELException</a></code> - Thrown if parsing errors were found.</dd>
</dl>
</li>
</ul>
<a name="evaluate-java.lang.String-java.lang.Class-jakarta.servlet.jsp.el.VariableResolver-jakarta.servlet.jsp.el.FunctionMapper-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>evaluate</h4>
<pre>public abstract&nbsp;java.lang.Object&nbsp;evaluate(java.lang.String&nbsp;expression,
java.lang.Class&lt;?&gt;&nbsp;expectedType,
<a href="../../../../jakarta/servlet/jsp/el/VariableResolver.html" title="interface in jakarta.servlet.jsp.el">VariableResolver</a>&nbsp;vResolver,
<a href="../../../../jakarta/servlet/jsp/el/FunctionMapper.html" title="interface in jakarta.servlet.jsp.el">FunctionMapper</a>&nbsp;fMapper)
throws <a href="../../../../jakarta/servlet/jsp/el/ELException.html" title="class in jakarta.servlet.jsp.el">ELException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Evaluates an expression. This method may perform some syntactic validation and, if so, it should raise an
ELParseException error if it encounters syntactic errors. EL evaluation errors should cause an ELException to be
raised.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The expression to be evaluated.</dd>
<dd><code>expectedType</code> - The expected type of the result of the evaluation</dd>
<dd><code>vResolver</code> - A VariableResolver instance that can be used at runtime to resolve the name of implicit
objects into Objects.</dd>
<dd><code>fMapper</code> - A FunctionMapper to resolve functions found in the expression. It can be null, in which case
no functions are supported for this invocation.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The result of the expression evaluation.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../jakarta/servlet/jsp/el/ELException.html" title="class in jakarta.servlet.jsp.el">ELException</a></code> - Thrown if the expression evaluation failed.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../jakarta/servlet/jsp/el/Expression.html" title="class in jakarta.servlet.jsp.el"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../jakarta/servlet/jsp/el/FunctionMapper.html" title="interface in jakarta.servlet.jsp.el"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?jakarta/servlet/jsp/el/ExpressionEvaluator.html" target="_top">Frames</a></li>
<li><a href="ExpressionEvaluator.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>