JavaServer Faces

JavaServer Faces


Course code: 
Time Unit: 

This comprehensive course shows Java programmers how to build web applications with JavaServer Faces 2.0. We develop the best-practice concepts that are formalized by the JSF architecture, from model/view/controller to the UI component framework and request-handling lifecycle. Students start to discover that there is a "JSF way" of doing things, and we learn not just APIs and tag libraries but the habit of slicing application logic into its most reusable forms: managed beans, event listeners, converters, validators, and more.

Students acquire a firm command of JSF development, learning to work with JSF's list and table components, building reusable composite components, and building Ajax applications. Simple, high-level Ajax functionality is covered, and students also work more directly with JSF's JavaScript API and resource-management framework.

Learning Objectives :

Understand the purpose and scope of the JSF architecture
Build web applications using JSF's FacesServlet, faces-config.xml, and the JSF request/response lifecycle
Use Facelets tag libraries to build JSF views
Use managed beans to encapsulate form handling and server-side presentation logic
Implement control logic as JSF event listeners or action methods
Use validators and converters to implement a validation phase for a JSF application
Build composite UI fragments or custom components using Facelets
Build Ajax applications with JSF: client-side behaviors and partial requests and responses followed by DOM updates



Chapter 1. Overview

Java EE and Web Applications
Perspectives: Servlets and JSP
Perspectives: MVC Frameworks
Perspectives: AWT and JFC
JSF Value Proposition
JSF Configuration
Issues with JSP and JSF

Chapter 2. Lifecycle

The JSF Request/Response Cycle
Lifecycle Phases
Phase Listeners
The FacesContext Class
Who Does What
Partial Request Cycles

Chapter 3. UI Components

The UIComponent Class
Behavioral Interfaces
The Core and HTML Tag Libraries
Relationship to CSS
ID, Client ID, and Label
Navigating the UI Tree
The binding Attribute

Chapter 4. Page Navigation

View Selection
Navigation Rules
Implicit Navigation
Problems with POSTback
Support for HTTP GET
Conditional Navigation

Chapter 5. Managed Beans

JavaBeans and JSF
Backing Beans
Configuring Managed Beans
@ManagedBean and Related Annotations
The Unified Expression Language
Value and Method Expressions
Implicit Objects

Chapter 6. Scopes

Managed-Bean Scopes
Lifecycle Annotations
View Parameters
The Flash

Chapter 7. Dependency Injection

Managed Properties
Values, Lists, and Maps
Using Dynamic Expressions
Dependencies and Bean Scopes
The @ManagedProperty Annotation

Chapter 8. Facelets

Migrating from JSP
View Definition Languages
Tag Libraries
Writing and Using Custom Tags

Chapter 9. Events and Listeners

JSF Event Model
Event Types and Timing
Event Queueing
ActionEvent and ActionListener
Action Methods
Connecting Controllers to Beans
ValueChangeEvent and ValueChangeListener
Deferring Event Processing
Limitations of FacesListeners

Chapter 10. Lists and Tables

Working with Collections
Why We Don't Use <c:anything> <c:anyMore>

Defining Columns and Facets
One Command Per Row
Reading the Row Number
Working with Persistent Data
Concurrency and Caching
Limiting the Scope of Queries

Chapter 11. Converters

The Converter Interface
Life of a Datum
Standard Converters
Custom Converters
The @FacesConverter Annotation
Timing of Conversion
Representing Persistent Objects by ID

Chapter 12. Validators

The Validator Interface
Standard Validators
Using Regular Expressions
Producing Error Messages
Message Keys
Presenting Error Messages
Posting Error Messages from Anywhere
Custom Validators
The @FacesValidator Annotation
Validating Multiple Inputs
JSR-303 Support: "Bean Validation"

Chapter 13. Resources

Resource Libraries
Deploying Images, Scripts, and Stylesheets
Addressing Resources

Chapter 14. Composites

Limitations of Custom Tags
Composite Components
Deploying and Using Composites
Interface and Implementation
Impact on the UI Tree

Chapter 15. Ajax

What is Ajax?
The XMLHttpRequest Object
Ajax and the JSF Lifecycle
execute and render Attributes
Ajax Listeners

Chapter 16. The JSF JavaScript API

The JSF JavaScript API
Trigering Ajax Requests
Refining with Callbacks
onevent and onerror Attributes
The Ajax Request/Response Process
Using Hidden Inputs
Other JavaScript Functions



General note:
This course is intended primarily for experienced Java application developers. Page authors, component developers, and others who may have little or no Java experience (but perhaps are stronger on HTML, JavaScript, and JSP) may well find this to be a valuable training experience, though without solid Java skills many of the coding exercises will be difficult to follow.

Java programming experience is essential to understanding the JSF API as presented here.
General understanding of servlets and JSP is recommended, but not required.
Basic knowledge of XML will be helpful, as will any previous experience with HTML.



Java developers.