Java Web Development with JSF

This course describes how to create complex Web pages by using JavaServer Faces (JSF) 2.2. You will learn how to define web pages using the JSF tag libraries, implement event handling in managed beans, and define navigation and configuration information.

The course includes comprehensive coverage of Facelets, which enables you to create template pages and composition components. Additionally, the course shows how to utilize built-in Ajax support, plus advanced features of the RichFaces library.


3 days



  • At least 6 months Java programming experience
  • Familiarity with HTML and web development would be an advantage

What you'll learn

  • Understand JSF architecture
  • Using JSF components
  • Defining and configuring managed beans
  • Converting and validating user input
  • Implementing navigation rules between pages
  • Creating Facelets templates and custom components
  • Implementing Ajax-enabled web pages

Course details

Introduction to JSF

  • Web development concepts
  • JSF goals and benefits
  • Architecture of a JSF application
  • JSF components, managed beans, and configuration files
  • Building and deploying a JSF application

Using JSF Tags

  • Recap of JSP tag library concepts
  • Overview of JSP tag libraries
  • Defining JSF forms and forms
  • Input and output tags
  • Buttons and hyperlinks
  • Checkbox lists, radio button lists, list boxes, and menus

Defining Managed Beans

  • MVC concepts
  • Overview of managed beans
  • Defining a managed bean
  • Defining the scope of a managed bean
  • Mapping beans to UI components
  • Binding to values and methods
  • Defining event handlers
  • Configuring managed beans
  • Defining dynamic beans

JSF Lifecycle

  • Overview of the JSF lifecycle
  • Capturing the original view state
  • Capturing user input
  • Validating input
  • Updating the model
  • Firing events
  • Rendering controls

Navigating between Pages

  • How to control navigational flow with JSF
  • Defining configuration information for page navigation
  • Defining unconditional navigation
  • Defining conditional navigation
  • Defining a choice of paths

Converting and Validating Data

  • Conversion and validation in the JSF lifecycle
  • Conversion concepts
  • Using built-in converters
  • Displaying error messages
  • Defining custom converters
  • Validation concepts
  • Using built-in validators
  • Defining custom validators

Data Binding

  • Overview of data binding in JSF
  • Bindable data sources
  • Binding single-value controls
  • Overview of data tables
  • Defining headers, footers, and columns
  • Defining styles
  • Supporting editing and sorting

Using Facelets

  • Overview of Facelets
  • Defining a Facelets view handler
  • Defining and using a Facelets template
  • Using composition controls
  • Creating custom controls in Facelets


  • Overview of Ajax
  • Using built-in Ajax features
  • Making effective use of the RichFaces Ajax library