JavaServer Faces, a standard technology for building user interfaces for Java-based Web applications, is now shipping.
In development for two years, JavaServer Faces is intended to enable developers of varying skills to quickly build Web applications by assembling reusable UI components in a page, connecting components to an application data source, and wiring client-generated events to server-side event handlers.
The subject of Java Specification Request 127, JavaServer Faces exceeds related Java development standards such as Struts and JSP, said Ed Burns, a co-lead on JSR-127 and a staff engineer for J2EE at Sun Microsystems Inc.
"This solution provides a best-of-breed approach where we took the concepts that were really useful for all of the other frameworks out there and put them together for a single whole. It's a framework for building Web applications," Burns said.
Interoperability is critical to JavaServer Faces, noted Craig McLanahan, also a specification lead on JSR-127.
"The main goal was to provide a single API upon which application servers and component libraries creators can create components that interoperate," McLanahan said.
The Java Community Process Executive Committee, which oversees JSRs, officially approved JSR-127 this week.
A reference implementation and final release of JavaServer Faces 1.0 are now available for download at http://java.sun.com/j2ee/javaserverfaces/download.html. This implementation enables development of JavaServer Faces applications to run in conjunction with Java Servlet 2.3 containers and JSP 1.2 containers. Servlet containers enable development of HTTP applications while JSP is for building dynamic Web applications.
With JavaServer Faces, Web applications can handle management of the user interface on the server and allow the developer to focus on application code. JavaServer Faces is considered a key to the NetBeans open source Java platform. Support for the technology is anticipated in many application servers, McLanahan said.
An official at tools vendor Innoopract said his company plans to incorporate support for JavaServer Faces into its W4T Eclipse Plug-In tool within a few months. JavaServer Faces transforms the development model for client-based business applications to the Web through use of facilities such as widgets, said Jochen Krause, president of Innoopract
"We are creating WYSIWYG tools for Web-based applications and we have something which is not very far from JavaServer Faces already implemented for Eclipse," Krause said. Eclipse is an open source tools initiative that relies heavily on Java.
"We are very happy that we get a standard now because that makes it much easier to support many different servers and (we are glad) for customers as well, that they get more security now because it's standard and you can interchange different implementations of a standard," Krause said.
Still lacking in JavaServer Faces is a tree view component, for displaying folders in a tree structure, Krause noted. This feature is expected to be added in the future, McLanahan said.
Included in JavaServer Faces are:
* A set of APIs for representing UI components and managing their state, handling events and input validation, defining page navigation, and supporting internationalization and accessibility.
* A JSP custom tag library for expressing a JavaServer Faces interface within a JSP page.
JavaServer Faces has been tested with various configurations with the Java 2 SDK, Standard Edition and on platforms such as Solaris, Windows, and Red Hat Linux. Testing also has been done on Netscape and Internet Explorer browsers.