JavaServer Faces (JSF) Programming

Course:  JSFCS
Duration:  3 Days
Level:  II
Course Summary

This course teaches developers how to write Java Enterprise Edition (JEE) applications that use JavaServer Faces for the Web user interface. The course addresses all JSF features, including the request processing lifecycle, managed beans, page navigation, component development, Ajax, validation, internationalization, and security. Instructor experiences throughout the course offer insider information on the design of JSF.

« Hide The Details
Topics Covered In This Course

Introduction to JSF

  • What is JSF?
  • History
  • Feature Overview
  • Implementations
  • Development Environments
  • Development Process
  • JSF Sample

Writing JavaBeans

  • Definition
  • Why Use JavaBeans?
  • GUI Toolkits
  • JavaBeans versus Enterprise JavaBeans
  • Requirements
  • Bean Features
  • Visual versus Non-Visual Beans
  • What are Reflection and Introspection?
  • Writing JavaBean Methods
  • JavaBean Properties
  • Simple Properties
  • Implementing Simple Properties
  • Calculated Properties
  • Accessing Simple Properties from a JSP
  • Indexed Properties
  • Introduction to Events
  • Event Architecture
  • The Event Object Class
  • Event Listener Interfaces
  • Registering for an Event
  • Firing an Event Based on Property Change
  • Firing an Event
  • Event Consumers
  • Bound Properties
  • Implementing a Bound Property
  • Listening to a Bound Property
  • Advanced JavaBean Techniques

J2EE Review

  • What is Java Enterprise Edition?
  • Introduction to Servlets
  • Why Use Servlets?
  • Writing a Servlet
  • A Simple Servlet
  • Generating HTML in a Servlet
  • Introduction to JavaServer Pages
  • Why Use JSPs?
  • Separating Content from Presentation
  • The Model-View-Controller Architecture
  • Using a JavaBean from a JSP
  • Bean Scopes
  • Using the JSP Expression Language
  • JSP EL Operators
  • JSTL EL Implicit Objects
  • EL Operator Examples
  • Custom JSP Actions - Tag Libraries
  • Uses of Custom Actions
  • Using a Tag Library
  • JEE Packaging Model
  • Web Application Directory Structure
  • The Web Deployment Descriptor
  • Deployment Descriptor Elements
  • Forwarding versus Redirecting

JSF Architecture

  • JSF Requirements
  • Configuring the Faces Servlet
  • JSF URLs
  • Optional: Preventing Direct JSP Access
  • Optional: Providing a Start Page
  • JSF Tag Libraries
  • Sample JSF Page
  • Managed Beans
  • Introduction to the JSF Expression Language
  • Introduction to JSF Components
  • The Component Tree
  • Typical Request Processing
  • Invoking an Application Method
  • Accessing the Servlet Environment
  • Introduction to Navigation

Request Processing and Navigation

  • JSF Components
  • The Component Tree
  • Request/Response Lifecycle
  • Restore View Phase
  • View State
  • Apply Request Values Phase
  • Displaying Conversion Errors
  • Validation Phase
  • Update Model Phase
  • Invoke Application Phase
  • Renderer Response Phase
  • Backing Beans
  • JSF Navigation
  • Navigation Rule Syntax
  • Static Navigation
  • Dynamic Navigation
  • Using Redirection
  • Navigation Wildcards
  • Using a GUI Tool for Navigation Rules

Managed Beans and the JSF EL

  • What is a Managed Bean?
  • Using Managed Beans
  • Bean Scopes
  • Dependency Injection and Wiring
  • Injecting Simple Values
  • Injecting Lists
  • Injecting Maps
  • Wiring Bean References
  • Rules for Bean Scopes
  • JSF Expression Language
  • JSF EL Operators
  • Operator Examples
  • JSF EL Implicit Variables
  • Implicit Variable Examples
  • Evaluating Expressions in Java

JSF Components

  • JSF is a Component-Based Framework
  • JSF Provides a Pluggable Architecture
  • How Does JSF Create Component Objects?
  • The Client-Server Model
  • JSF Tag Libraries
  • Actions in the Core Tag Library
  • Actions in the HTML Tag Library
  • Common Attributes
  • HTML Pass Through Attributes
  • The f:view Action
  • HTML Output Actions
  • Output Actions Example
  • The h:form Tag
  • HTML Input Actions
  • Input Actions Example
  • HTML Command Actions
  • Single Selection Actions
  • Multiple Selection Actions
  • Conditionally Enabling Components
  • Conditionally Displaying Components

Conversion and Validation

  • Data Conversion
  • JSF Request Lifecycle
  • Standard Converters
  • Converting Dates
  • Displaying Conversion Error Messages
  • Custom Converter Error Messages
  • Standard Converter and Validation Messages
  • Custom Converters
  • What is Validation?
  • Validation Scenarios
  • Converters vs Validators
  • Required Fields
  • JSF Standard Validators
  • Displaying Validation Error Messages
  • Custom Validation Error Messages
  • Defining a Custom Validator
  • Bypassing Conversion and Validation

Event Handling

  • Event Handling in Java
  • JavaBean Events
  • JavaBean Event Architecture
  • JSF Event Categories
  • Action Events
  • Immediate vs Non-Immediate Events
  • Configuring an Immediate Event
  • Phase Listeners

Panels and Data Tables

  • What is a Panel?
  • The h:panelGrid Tag
  • The h:panelGroup Tag
  • Introduction to Data Tables
  • The h:dataTable Tag
  • Data Table Iteration
  • Data Table Facets
  • Alternating Row Styles
  • Components in Data Table Cells
  • Editable Table Cells
  • Table Data Models
  • Using a Data Model
  • Advanced Data Table Topics
  • Using a Data Table with a Database
  • Accessing the Database
  • What is JPA?
  • Java Persistence Ancestry
  • Java Persistence Overview
  • Paging Large Result Sets
  • JPA Paging Support
  • Enabling and Disabling Paging Buttons

JSF and Internationalization

  • What is Internationalization ?
  • JSE Support for I18N
  • What is Unicode?
  • Language and Country Codes
  • What is a Locale?
  • How Does JSF Determine Locale?
  • Selecting a Locale Explicitly
  • Message Bundle Property Files
  • Formatting Dates and Numbers
  • Complete I18N Example

Introduction to Facelets

  • What is Facelets?
  • Why Use Facelets?
  • Installing Facelets
  • Configuring the View Handler
  • Configuring the View File Extension
  • Writing a Facelets Application
  • Common Layout and Content
  • Writing a Facelets Template
  • Writing a Facelets Page
  • Another Facelets Page
  • The Managed Bean
  • Navigation Rules
  • The Facelets Namespace
  • The jsfc Attribute
  • Inlining Text
  • Facelets and JSTL

JSF and Other Frameworks

  • The Seam Framework
  • Seam Architectural Highlights
  • Seam Enhancements to JSF
  • Seam and AJAX
  • Seam Hello, World
  • The JPA Entity
  • The JSF Input Form
  • The Session Bean
  • What is Struts?
  • A Simple Request
  • Writing a Struts HTML Form
  • The Struts-Faces Component
  • What is Apache Shale?
  • Shale Features
  • Shale Validation
  • What is RichFaces?

JSF 2 Overview

  • Major Changes in JSF 2
  • Facelets
  • Ajax Support
  • Partial State Saving
  • Annotations
  • HTTP GET Support
  • New Validators
What You Can Expect

At the end of this course, students will be able to:

  • Understand the basic architecture of the JSF framework
  • Understand how JSF applications process requests
  • Write applications using JSF navigation
  • Write managed bean classes and manipulate managed beans using the JSF expression language
  • Check user input using JSF validators
  • Use JSF components for input, output and display of tabular data
  • Internationalize JSF applications
  • Understand the basics of the Facelets view technology
Who Should Take This Course

Developers who will write JEE applications using JSF.

Recommended Prerequisites

Java programming skills are mandatory.

Training Style

Instructor led with 50% lecture and 50% lab.

« Hide The Details
Related Courses
Code Course Title Duration Level
JavaServer Faces and Portlet Programming
5 Days
Fundamentals of Java Development
5 Days
Spring Framework Part 1 - Fundamentals, Injection, AOP, Beginning MVC
5 Days
RichFaces 4 Programming
2 Days
Spring Framework Part 2 - More MVC, Webflow, Web Services, Security, ROO
5 Days
Java EE Web Application Development
3 Days

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at [email protected]