Overview

This course covers all aspects of using JavaServer Faces to create Enterprise Web Applications within the Enterprise Java (JEE) platform. No previous experience of JSF or JEE is assumed. The delivery begins with the fundamentals of JEE design and component types but quickly focuses on the specifics of coding within the JSF framework. Since the goal of JSF is to enable the use of UI component libraries there is little value in studying it in isolation. Hence the course is built around the PrimeFaces library of JSF components, which emerged as the most popular and fully-featured library during the 2000’s.

By the end of the course delegates will understand the JEE Architecture and the role of JSF within it. They will be comfortable with the JSF execution model, especially the lifecycle of a component and how to direct and customize the behaviour of controls. Most importantly they will have built multiple web applications from scratch, using both the minimal set of components provided with JSF and the much richer controls provided with PrimeFaces. Lastly, they will have covered PrimeFaces specific topics such as defining models for charts, taking advantage of partial rendering and customizing themes.

Outline

Fundamentals of the JEE Web Container

  • How Enterprise Java (JEE) emerged during the 2000’s
  • The role of the Web Container in Enterprise Java Design
  • Types of components which can be deployed to the Web Container
  • Declaring Servlets using XML and annotation driven configuration
  • Extracting data from the request and formatting a response
  • Forwarding requests between multiple web components
  • Using filters to intercept requests and add advice
  • Handling events at the request, session and context levels

Injecting Dependencies Into Web Components

  • Declaring and naming CDI Managed Beans
  • Adding lifecycle methods to your beans
  • Scopes available for storing CDI beans
  • Injecting beans via custom annotations
  • Injecting objects via provider methods
  • Configuring CDI via the beans.xml file

Introducing JavaServer Faces

  • The evolution of the server page concept
  • Comparisons between JSF and ASP .NET Web Forms
  • Comparisons between JSF and Single Page Applications
  • The move away from JSP to the Facelets view engine
  • A simplified version of the JSF component lifecycle
  • Installing the FacesServlet Front Controller
  • Configuring JSF via the faces-config.xml file
  • Configuring JSF via annotations and conventions

Creating Basic JSF Web Applications

  • Declaring components on the Facelets page
  • Declaring managed beans via XML and annotaitons
  • Choosing the correct scope for a managed bean
  • Using EL to bind values to bean properties
  • Using EL to specify event-handling methods
  • Configuring navigation rules and transitions

Making the Most of Facelets and EL

  • The Unified Expression Language in depth
  • The special operatiors provided by Unified EL
  • Support within Facelets for Master Pages
  • Support within Facelets for Composition
  • Tag libraries provided along with Facelets
  • Defining ‘Faces Flows’ within the application

More Advanced Uses of Components

  • The JavaServer Faces lifecycle in depth
  • Handling events at different stages of the lifecycle
  • Controlling navigation between multiple pages
  • Converting and validating data entered by users
  • Creating your own converters and validators
  • Designing and building your own JSF components
  • Using JVM scripting languages such as Groovy
  • Accomodating AJAX requests via partial processing

Incorporating the PrimeFaces Components

  • Including the PrimeFaces library within your Web App
  • The chart based components and the charting API
  • Displaying data in grids, tables and lists
  • Adding filtering and pagination to tables
  • Styling components with themes and skins
  • Adding client side validation and custom JS
  • Using the PrimeFaces API for AJAX requests