Welcome to JUEL!

JUEL is an implementation of the Unified Expression Language (EL), specified as part of the JSP 2.1 standard (JSR-245).

Motivation

Once, the EL started as part of JSTL. Then, the EL made its way into the JSP 2.0 standard. Now, though part of JSP 2.1, the EL API has been separated into package javax.el and all dependencies to the core JSP classes have been removed.

In other words: the EL is ready for use in non-JSP applications!

Features

JUEL provides a lightweight and efficient implementation of the Unified Expression Language.

  • High Performance – Parsing expressions is certainly the expected performance bottleneck. JUEL uses a hand-coded parser which is up to 10 times faster than the previously used (javacc) generated parser! Once built, expression trees are evaluated at highest speed.
  • Pluggable Cache – Even if JUELs parser is fast, parsing expressions is relative expensive. Therefore, it's best to parse an expression string only once. JUEL provides a default caching mechanism which should be sufficient in most cases. However, JUEL allows to plug in your own cache easily.
  • Small Footprint – JUEL has been carefully designed to minimize memory usage as well as code size.
  • Method Invocations – As an extension to the standard, JUEL can be configured to enable method invocations as in ${foo.matches('[0-9]+')}.
  • Pluggable EL– The JUEL jars have been setup to be transparently detected as EL implementation by a Java runtime environment or JEE5 application server. Using JUEL does not require an application to explicitly reference any of the JUEL specific implementation classes.

Status

JUEL is considered production stable. The code is well tested and feature complete.

Availability

JUEL is licensed under the Apache License 2.0. The javax.el.* API sources have been taken from the GlassFish project, which is available under Sun's CDDL 1.0.

Requirements

JUEL itself requires just Java 5. Using JUEL as EL implementation in JSP/JSF Web applications requires GlassFish v2 Milestone 2 or later.