Excellent training, even for a beginner. Lots of practical work that put learning right into practice. More Testimonials »

JSF Development with ICEfaces

Delivery Options

Class Description

Class Overview

This comprehensive course puts the experienced Java developer in good position to build sophisticated web applications using JavaServer Faces and the ICEfaces component library. A first module introduces the best-practice concepts of MVC architecture and command-object encapsulation that propel the JSF architecture. Students create JSF applications by organizing their pages as JSF component trees, and their server-side code as JSF managed beans and controllers. They add data-conversion and validation logic and generally get accustomed JSF programming practice.

The second module begins with backgrounders in both JSF custom component architecture and Ajax development, as these are essential to understanding both the purpose and the design of ICEfaces. Then, the bulk of this module consists in practical, hands-on exercise with ICEfaces. We focus on Ajax -- partial submits and responses, and Ajax Push -- and other cross-cutting features of the framework. Then we survey the component library, drilling down on a few of the most interesting components and getting a feel for the capabilities of the library as a whole. By the end of the course students are building applications with popup calendars, modal dialogs, tabbed panes, tables, and other cutting-edge UI features.

Class Goals

  • 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 the JSF custom tag libraries to build JSF views as JSPs.
  • Use managed beans to encapsulate not only server-side form handling but also client-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
  • Integrate ICEfaces into JSF applications.
  • Use partial submits and responses to implement auto-completes, form updates, and other Ajax features.
  • Make judicious use of Ajax Push to implement asynchronous updates from the application to existing JSF views.
  • Use popup calendars, menus, charts, and other UI components to enhance the look and feel of JSF views.
  • Use tabbed panes, splitters, and other layout management tools.
  • Use modal dialogs for a more seamless user experience.

Class Outline

  1. JavaServer Faces
    1. Overview
      1. Java EE and Web Applications
      2. Perspectives: Servlets and JSP
      3. The Model/View/Controller Pattern
      4. Perspectives: MVC Frameworks
      5. The Command Pattern
      6. Perspectives: AWT and JFC
      7. JSF Value Proposition
      8. JSF Configuration
    2. Lifecycle and Page Navigation
      1. The JSF Request/Response Cycle
      2. Lifecycle Phases
      3. The FacesContext Class
      4. Who Does What
      5. View Selection
      6. Navigation Rules
      7. Outcomes
    3. User Interface Components
      1. The Composite View Pattern
      2. The UIComponent Class
      3. Behavioral Interfaces
      4. The Core and HTML Tag Libraries
      5. Relationship to CSS
      6. ID, Client ID, and Label
      7. The UISelectItem(s) Class
      8. Navigating the UI Tree
    4. Managed Beans
      1. JavaBeans and JSF
      2. Backing Beans
      3. The Factory Pattern
      4. Managed Beans
      5. Coarse-Grained Beans
      6. The Unified Expression Language
      7. Value Expressions
      8. Dependency Injection
      9. Bean Scopes
    5. Events and Controllers
      1. The Observer Pattern
      2. JSF Event Model
      3. Event Types and Timing
      4. Event Queueing
      5. ActionEvent and ActionListener
      6. Action Methods
      7. Connecting Controllers to Beans
      8. Dynamic Outcomes
      9. ValueChangeEvent and ValueChangeListener
      10. Limitations of FacesListeners
    6. Converters
      1. The Adapter Pattern
      2. The Converter Interface
      3. Standard Converters
      4. Working with Enumerated Types
      5. Timing of Conversion
      6. Custom Converters
      7. Configuring Converters
    7. Validators
      1. Validating Input
      2. The Validator Interface
      3. Standard Validators
      4. Producing Error Messages
      5. Message Keys
      6. Presenting Error Messages
      7. Custom Validators
      8. Validating Multiple Inputs
      9. Using a PhaseListener
    8. Data Tables (Optional)
      1. Managing Tabular Data
      2. The JSF Data Table
      3. Columns
      4. Facets
      5. Limitations and Strategies
      6. Nesting Tables
  2. ICEfaces
    1. Custom Components
      1. UI Component Libraries
      2. Using a Custom Component Library
      3. The Components of a Component
      4. Delivering JavaScript
      5. Blending Client- and Server-Side Logic
    2. Ajax Applications
      1. What is Ajax?
      2. Request Formats
      3. Asynchronous Response Handling
      4. Alternatives: XMLHttpRequest
      5. Alternatives: Direct Web Remoting
      6. JSF for Ajax
      7. ICEfaces
    3. ICEfaces Architecture
      1. The ICEfaces Value Proposition
      2. Acquiring and Configuring ICEfaces
      3. PersistentFacesServlet and BlockingServlet
      4. JSP, JSP Documents, and Facelets
      5. Ajax via "Parital Submit"
      6. Ajax Push: RenderManager vs. SessionRenderer
      7. Drag and Drop
      8. Security Features
    4. ICEfaces Components
      1. Extended Components
      2. Custom Components
      3. Layout Managers
      4. Component Stylesheets
      5. <ice:dataTable>
      6. <ice:selectDateInput>
      7. <ice:panelTooltip>
      8. <ice:panelPopup>
      9. <ice:panelTabSet>
      10. <ice:outputChart>
      11. Visual Effects

Class Materials

Each student in our Live Online and our Onsite classes receives a comprehensive set of materials, including course notes and all the class examples.

Class Prerequisites

Experience in the following areas is required:

  • Java programming experience is essential to understanding the JSF API as presented here.
  • JSP page-authoring experience is required.
  • Servlets programming experience is recommended but not required.

Experience in the following areas would be beneficial:

  • Basic knowledge of XML will be helpful, as will any previous experience with HTML.

Technical Requirements

Our computer technical requirements and setup process is easy, with support just a click away.


  • Java ®, all Java-based marks, Hibernate ®, and all Hibernate-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. or its subsidiaries in the U.S. and other countries.
Client Success
  1. Independent Survey
  2. Client List
  3. Testimonials
Join The Team
  1. Learn how you can become a Webucator Trainer
  2. Career Opportunities
Locations
Compare Us
Watch 3-minute Demo Video
of Live Online Training:
Learn the benefits of online training with Webucator
Webucator is a Registered Education Provider (R.E.P.) approved by PMI to issue professional development units (PDUs) for our training courses.

Free Webinars

A Crash Course in CSS

Wed, 3/21 1:00 PM EST

© Webucator, Inc. All rights reserved. | Toll Free: 1-877-932-8228 | From outside the USA: 315-849-2724| Fax: 315-849-2723