The JavaServer Faces technology was introduced after the Expression Language for Java Server Pages technology has been developed. The JavaServer Faces technology required more powerful language which should do the tasks which cannot be done by the JSPs' Unified Expression Language. Below are some of the issues in using the JSP Expression Language.
- The JavaServer Faces is a component model. Components are event driven and the events generated by the components are handled by the JSF framework in various phases, unlike the JSP expression which will be evaluated immediately. This is called post-back of events. At different levels, different events will get executed like Validations, Conversions etc., which are become major limitations in using the JSP expression language.
- The immediate evaluation will be done on static objects where as the JSF components require the get and set operations on the data objects stored on the server side beans.
- The JSF components are much powerful which require direct execution of methods on the Managed Beans. Also they need to get the data during the render phase and set the data in the beans during post-back.
- Another problem they sought is registering of the various events with their methods on the server side objects which will be executed during various phases.
In ordered to overcome the above limitations, they have developed a new expression language for JavaServer Faces technology which can evaluate expressions at different phases of the application, which can get and set the data on server side objects, which can invoke the methods on the server side objects.
The expressions in EL shall be written by enclosing the expression in between "#{" and "}" literals.
e.g.