Unified Expression Language (UEL): Referencing Data
UEL stands for Unified Expression Language (EL), specified as part of the JSP 2.1 standard (JSR-245). We use UEL to access any data within our repositories.
The syntax is quite simple. Objects are accessed by name. A generalized [ ]
operator can be used to access maps, lists, arrays of objects and properties of a JavaBeans object; the operator can be nested arbitrarily. The operator can be used as a convenient shorthand for property access when the property name follows the conventions of Java identifiers, but the [ ]
operator allows for more generalized access.
Relational comparisons are allowed using the standard Java relational operators. Comparisons may be made against other values, or against boolean (for equality comparisons only), string, integer, or floating point literals. Arithmetic operators can be used to compute integer and floating point values. Logical operators are available.
An expression is formed by using the constructs ${expr}
or #{expr}
. Both constructs are parsed and evaluated in exactly the same way by the EL, but at different instants. Expressions using the $-syntax are evaluated during the initialization phase. There's no performance penalty during the execution time and the correctness of the resulting value and type can be verified early. Expressions using the #-syntax are evaluated during the execution phase. Typically you use #-expressions to access the input, output and control repositories, the $-expression for everything else. The two constructs must not be mixed within a single string.