The Spring Framework

## org.springframework.web.util
Class ExpressionEvaluationUtils

    java.lang.Object
      org.springframework.web.util.ExpressionEvaluationUtils

    public abstract class ExpressionEvaluationUtils

extends Object

Convenience methods for transparent access to JSP 2.0's built-in `ExpressionEvaluator` or the standalone `ExpressionEvaluatorManager` of Jakarta's JSTL implementation.

Automatically detects JSP 2.0 or Jakarta JSTL, preferring the JSP 2.0 mechanism if available. Also detects the JSP 2.0 API being present but the runtime JSP engine not actually supporting JSP 2.0, falling back to the Jakarta JSTL in this case. Throws an exception when encountering actual EL expressions if neither JSP 2.0 nor the Jakarta JSTL is available.

In the case of JSP 2.0, this class will by default use standard `evaluate` calls. If your application server happens to be inefficient in that respect, consider setting Spring's "cacheJspExpressions" context-param in `web.xml` to "true", which will use `parseExpression` calls with cached Expression objects instead.

The evaluation methods check if the value contains "${" before invoking the EL evaluator, treating the value as "normal" expression (i.e. a literal String value) else.

Note: The evaluation methods do not have a runtime dependency on JSP 2.0 or on Jakarta's JSTL implementation, as long as they are not asked to process actual EL expressions. This allows for using EL-aware tags with Java-based JSP expressions instead, for example.

Since:
  11.07.2003
Author:
  Juergen Hoeller, Alef Arendsen
See Also:
  `ExpressionEvaluator.evaluate(java.lang.String, java.lang.Class, javax.servlet.jsp.el.VariableResolver, javax.servlet.jsp.el.FunctionMapper)`, `ExpressionEvaluator.parseExpression(java.lang.String, java.lang.Class, javax.servlet.jsp.el.FunctionMapper)`, `ExpressionEvaluatorManager`

Field Summary
`static String` `EXPRESSION_CACHE_CONTEXT_PARAM` JSP 2.0 expression cache parameter at the servlet context level (i.e. a context-param in `web.xml`): "cacheJspExpressions".
`static String` `EXPRESSION_PREFIX`
`static String` `EXPRESSION_SUFFIX`

Constructor Summary
`ExpressionEvaluationUtils()`

Method Summary
`static Object` `evaluate(String attrName, String attrValue, Class resultClass, PageContext pageContext)` Evaluate the given expression (be it EL or a literal String value) to an Object of a given type,
`static Object` `evaluate(String attrName, String attrValue, PageContext pageContext)` Evaluate the given expression (be it EL or a literal String value) to an Object.
`static boolean` `evaluateBoolean(String attrName, String attrValue, PageContext pageContext)` Evaluate the given expression (be it EL or a literal String value) to a boolean.
`static int` `evaluateInteger(String attrName, String attrValue, PageContext pageContext)` Evaluate the given expression (be it EL or a literal String value) to an integer.
`static String` `evaluateString(String attrName, String attrValue, PageContext pageContext)` Evaluate the given expression (be it EL or a literal String value) to a String.
`static boolean` `isExpressionLanguage(String value)` Check if the given expression value is an EL expression.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### EXPRESSION_CACHE_CONTEXT_PARAM

    public static final String EXPRESSION_CACHE_CONTEXT_PARAM

  JSP 2.0 expression cache parameter at the servlet context level (i.e. a context-param in `web.xml`): "cacheJspExpressions".

  See Also:
    Constant Field Values

### EXPRESSION_PREFIX

    public static final String EXPRESSION_PREFIX

See Also:
  Constant Field Values

### EXPRESSION_SUFFIX

    public static final String EXPRESSION_SUFFIX

See Also:
  Constant Field Values

Constructor Detail

### ExpressionEvaluationUtils

    public ExpressionEvaluationUtils()

Method Detail

### isExpressionLanguage

    public static boolean isExpressionLanguage(String value)

  Check if the given expression value is an EL expression.

  Parameters:
    `value` - the expression to check
  Returns:
    `true` if the expression is an EL expression, `false` otherwise

### evaluate

    public static Object evaluate(String attrName,
                                  String attrValue,
                                  Class resultClass,
                                  PageContext pageContext)
                           throws JspException

  Evaluate the given expression (be it EL or a literal String value) to an Object of a given type,

  Parameters:
    `attrName` - name of the attribute (typically a JSP tag attribute)
    `attrValue` - value of the attribute
    `resultClass` - class that the result should have (String, Integer, Boolean)
    `pageContext` - current JSP PageContext
  Returns:
    the result of the evaluation
  Throws:
    `JspException` - in case of parsing errors, also in case of type mismatch if the passed-in literal value is not an EL expression and not assignable to the result class

### evaluate

    public static Object evaluate(String attrName,
                                  String attrValue,
                                  PageContext pageContext)
                           throws JspException

  Evaluate the given expression (be it EL or a literal String value) to an Object.

  Parameters:
    `attrName` - name of the attribute (typically a JSP tag attribute)
    `attrValue` - value of the attribute
    `pageContext` - current JSP PageContext
  Returns:
    the result of the evaluation
  Throws:
    `JspException` - in case of parsing errors

### evaluateString

    public static String evaluateString(String attrName,
                                        String attrValue,
                                        PageContext pageContext)
                                 throws JspException

  Evaluate the given expression (be it EL or a literal String value) to a String.

  Parameters:
    `attrName` - name of the attribute (typically a JSP tag attribute)
    `attrValue` - value of the attribute
    `pageContext` - current JSP PageContext
  Returns:
    the result of the evaluation
  Throws:
    `JspException` - in case of parsing errors

### evaluateInteger

    public static int evaluateInteger(String attrName,
                                      String attrValue,
                                      PageContext pageContext)
                               throws JspException

  Evaluate the given expression (be it EL or a literal String value) to an integer.

  Parameters:
    `attrName` - name of the attribute (typically a JSP tag attribute)
    `attrValue` - value of the attribute
    `pageContext` - current JSP PageContext
  Returns:
    the result of the evaluation
  Throws:
    `JspException` - in case of parsing errors

### evaluateBoolean

    public static boolean evaluateBoolean(String attrName,
                                          String attrValue,
                                          PageContext pageContext)
                                   throws JspException

  Evaluate the given expression (be it EL or a literal String value) to a boolean.

  Parameters:
    `attrName` - name of the attribute (typically a JSP tag attribute)
    `attrValue` - value of the attribute
    `pageContext` - current JSP PageContext
  Returns:
    the result of the evaluation
  Throws:
    `JspException` - in case of parsing errors

The Spring Framework

Copyright © 2002-2008 The Spring Framework.