Before you start
This tutorial series is about getting started with JavaServer Faces (JSF) technology, a server-side user-interface component framework for Java-based Web applications. The series is for developers who are new to JSF and want to come up to speed quickly — not just with JSF, but with using JSF components to reduce effort. The series covers just the essentials, with lots of examples.
JSF is a more-traditional GUI development environment like AWT, SWT, and Swing. One of its major benefits is that it makes Web development easier by putting the hard work on the framework developers, not the application developers. Granted, JSF itself is more complex than many other Web frameworks, but the complexity is hidden from the application developer. It is much easier to develop Web applications in JSF than in most other frameworks: it requires less code, less complexity, and less configuration.
If you are doing Java server-side Web development, JSF is the easiest framework to learn. It is geared for creating Web applications (not Web sites per se). It allows you to focus on your Java code without handling request objects, session objects, request parameters, or dealing with complicated XML files. With JSF, you can get more things done more quickly than with other Java Web frameworks.
This tutorial takes a basic approach to JSF development. You won't use fancy tools or IDE support in this tutorial (although tool support is a main benefit of JSF). You'll do bare-knuckled programming! I cover the essentials with just enough theory to keep the discussion going and keep you productively learning to use JSF to build Web applications. You might be surprised to learn that JSF is easier to program than other Java Web frameworks, even without fancy IDE tools.
In this tutorial, you get an overview JSF's features and learn how to write a basic JSF application. You build a simple calculator application and, in subsequent iterations, improve its look and feel, modify its structure to add dependency injection, and implement JSF's navigation mechanism. In Part 2, you'll build custom converters, validators, and phase-listeners.
If you are new to JSF, this tutorial is for you. Even if you have used JSF but have not tried out the JSF 1.2 features or have only used GUI tools to build JSF applications, you will likely learn a lot from both tutorials in this series.
This tutorial is written for Java developers whose experience is at a beginning to intermediate level. You should have a general familiarity with using the Java language, with some GUI development experience.
To run the examples in this tutorial, you need a Java development environment (JDK) and Apache Maven. It helps to have a Java IDE. Maven project files and Eclipse Java EE and Web Tools Project (WTP) project files are provided. See Download to obtain the example code.