Newsletter sign-up
View all newsletters

Sign up for our Enterprise Java Newsletter

Enterprise Java

Q&A: JavaServer Faces

Sun engineers discuss the relevance of JavaServer Faces

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

What is the JavaServer Faces specification all about? Why is it important to Web development?

Among other things, JavaServer Faces technology is a framework that simplifies user interface (UI) development for Web applications. It helps users assemble reusable UI components on a Webpage, manage its state, handle events, and easily connect them to backend data sources.

It's important to Web developers because it saves them time, enables them to build more powerful applications, and makes their lives easier. It brings some of the capabilities of rich client user interface programming to the Web. It is difficult to program high-quality Web-based user interfaces for several reasons: the Web has no notion of state, so one user interface view can't convey itself to another; there's no way to convey events; and there's no notion of components.

JavaServer Faces helps developers deal with this inhospitable environment. It provides the fundamental building blocks of user interactions, and allows for the reuse of components. The technology is attractive to tool vendors because, for the first time, there is a standard for Web user interface components—a standard that was designed through the Java Community Process. Which makes Web development even easier.

There have been many other technologies in the space, and tool vendors have had to chase these other technologies, including Struts, Tapestry, and Velocity. Now tool vendors can converge on the standard, and, as a result, developers find Web applications that are created in one tool have the ability to be altered in another. Additionally, these tools are supported in many different environments.

Developers reap the benefits of standardizing tools and components for JavaServer Faces. With standards, developers can pick and choose tools and components from a variety of vendors that best fit their needs. Many of the JavaServer Faces-enabled tools come from vendors that developers are already familiar with. When compared to components built from scratch, JavaServer Faces components are more powerful and of better quality.

What's the status of the JSR?

The specification, reference implementation, and technology compatibility kit for Java Specification Request (JSR) 127 were released in March 2003. A maintenance release came out at the end of May 2004. The maintenance work involved some bug fixes and performance work in the reference implementation, and some clarifications to the specification. The specification is available from the Java Community Process Website and the reference implementation is available at java.sun.com.

The reference implementation is also included in the Java 2 Platform, Enterprise Edition (J2EE) SDK, which provides an application server with JavaServer Faces built right in.

The main thrust of the JavaServer Faces 1.2 JSR will be to make JavaServer Pages (JSP) and JavaServer Faces technologies more cohesive. Originally, JavaServer Faces 1.0 was dependent on JSP 1.2 and Servlet 1.3, and there was no way to use JSP's new expression language. The JavaServer Faces expert group crafted an expression language that was very similar to JSP, but added a few new concepts to satisfy new requirements. To remedy the overlap, JavaServer Faces 1.2 will depend on JSP 2.1, which is being defined in JSR 245. The main goal of the two new JSRs is to roll JavaServer Faces' new concepts back into the expression language in JavaServer Pages. Using the same expression language for JavaServer Pages and JavaServer Faces will make it easier for developers to access application data stored in JavaBeans components. Of course, there will also be bug fixes and performance improvements.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources