The final version of the JavaServer Faces (JSF) specification 1.0 was launched recently with the intention of simplifying the development of user interfaces for Web-based JavaServer applications.
JSF is a user interface framework for Web applications that provides developers with a standard set of application program interfaces (APIs), and it has two main components. The first is an event-driven Web development base, and the second is a component-oriented model to build user interface components such as grids, menu bars, forms and buttons, said Kito Mann, editor-in-chief at JSF Central.
Developers can assemble reusable UI components in a page, connect the components to an application data source and wire client-generated events to server-side event handlers, allowing the developer to focus on writing the code.
As far as the standard Java 2 Enterprise Edition (J2EE) is concerned, the closest thing to aid developers with the Web interfaces before JSF were tag libraries, Mann said. They aren’t a full-fledged components, but they are basically an extension of JavaServer Pages (JSP), he added.
The main point of the JSF is to take the whole user interface, component-oriented view of Web development to the standardization level, Mann said. There have been frameworks similar to JSF for Java for a while but none of them are standard, he said. For example, Tapestry, SOFIA, Struts and Echo are frameworks that developers have been using primarily for user interfaces.
“Basically the deal is that you’re trying to do event model and user interface components but we are also trying to make development of Web applications easier,” Mann said. “If you don’t have an abstract way to make Web applications work, you spend a lot of time dealing with HTTP as a protocol and you waste a lot of time.”
In order for Java to be successful on every level, it needs to have a standard solution to every ordinary problem, he added.
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 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, he added.
Developers are expressing mixed views about the spec, JSF Central’s Mann said. While many are saying that the technology will help developers and reduce time spent programming, others want to fight to remain loyal to their own preferred choice of framework.