Overview of the EL
The EL allows page authors to use simple expressions to dynamically access data from JavaBeans components. For example, the test attribute of the following conditional tag is supplied with an EL expression that compares 0 with the number of items in the session-scoped bean named cart.
<c:if test="${sessionScope.cart.numberOfItems > 0}"> ... </c:if>
JavaServer Faces technology uses the EL for the following functions:
Deferred and immediate evaluation of expressions
The ability to set as well as get data
The ability to invoke methods
See Using the EL to Reference Managed Beans for more information on how to use the EL in JavaServer Faces applications.
To summarize, the EL provides a way to use simple expressions to perform the following tasks:
Dynamically read application data stored in JavaBeans components, various data structures, and implicit objects
Dynamically write data, such as user input into forms, to JavaBeans components
Invoke arbitrary static and public methods
Dynamically perform arithmetic operations
The EL is also used to specify the following kinds of expressions that a custom tag attribute will accept:
Immediate evaluation expressions or deferred evaluation expressions. An immediate evaluation expression is evaluated at once by the underlying technology, such as JavaServer Faces. A deferred evaluation expression can be evaluated later by the underlying technology using the EL.
Value expression or method expression. A value expression references data, whereas a method expression invokes a method.
Rvalue expression or lvalue expression. An rvalue expression can only read a value, whereas an lvalue expression can both read and write that value to an external object.
Finally, the EL provides a pluggable API for resolving expressions so custom resolvers that can handle expressions not already supported by the EL can be implemented.