New features and changes to JSF include:
- Unified expression language (EL) -The expression language used in Faces, which was inspired by the expression language used in JSTL and JSP, has been generalized and extracted into its own top level javax.el package. The EL is agnostic of the technology hosting it, such as JSP or Faces, and is intended to be generally useful in the same way one can use OGNL in a variety of applications. Faces now has deprecated its internal EL in favor of using the Unified EL.
- New Tree Creation and Content Interweaving Model for Faces applications that use JSP - While it is perfectly acceptable to use Faces without using JSP, many people find their productivity increases when using these two technologies together. Unfortunately, as amply documented by Hans Bergsten in his article "Improving JSF by Dumping JSP", there were some integration cases that didn't work as expected. By changing the specification of the implementation of the Faces ViewHandler for JSP, as well as changing the JSP custom tag base class used by all Faces component tags, these problems have all been resolved.
- Integration with JSTL - Another long standing problem was in using JSTL's <c:forEach> tag to contain Faces input components. Because JSP has no notion of a postback, it was not possible to apply the values correctly to the nested input components on postback. By introducing some new concepts into the EL, it is now possible to fully use <c:forEach> with any kind of Faces component. This will require a new release of JSTL, which will also be present in J2EE 5, along with Faces and JSP.
- Back Button issues and Multi Frame or Multi Window Faces Apps - Due to a deficiency in the State Management API using Faces in Multi Frame or Multi Window applications presented some problems. The browser back button also could cause application state to become confused. These problems have now been fixed.
- Associating a message with a particular component in the page
- JspApplicationContext - This class contains context information specific to JSP containers, and allows pluggable expression language resolvers
- Expression Language changes - A new package for expression language classes was created, and the old package was deprecated. Many new features were added to the expression language.
- Tag library changes - New rules and capabilities for the use of tag files and libraries were added.
- trimWhiteSpaces directive - A JSP page can now be directed to remove whitespaces after JSP directives that do not have any other content after them.