JSF Development with ICEfaces Training in J S F Developmentwith, ICEfaces

Enroll in or hire us to teach our JSF Development with ICEfaces class in J S F Developmentwith, I C Efaces by calling us @303.377.6176. Like all HSG classes, JSF Development with ICEfaces may be offered either onsite or via instructor led virtual training. Consider looking at our public training schedule to see if it is scheduled: Public Training Classes
Provided there are enough attendees, JSF Development with ICEfaces may be taught at one of our local training facilities.
We offer private customized training for groups of 3 or more attendees.

Course Description

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.
Course Length: 1 Days
Course Tuition: $1690 (US)


This course is intended primarily for experienced JSF application developers. Java programming experience is essential. JSP page-authoring experience is required. Servlets programming experience is recommended but not required. Basic knowledge of XML will be helpful, as will any previous experience with HTML.

Course Outline


Module 1. JavaServer Faces

Chapter 1. Overview

  • Java EE and Web Applications
  • Perspectives: Servlets and JSP
  • The Model/View/Controller Pattern
  • Perspectives: MVC Frameworks
  • The Command Pattern
  • Perspectives: AWT and JFC
  • JSF Value Proposition
  • JSF Configuration

Chapter 2. Lifecycle and Page Navigation

  • The JSF Request/Response Cycle
  • Lifecycle Phases
  • The FacesContext Class
  • Who Does What
  • View Selection
  • Navigation Rules
  • Outcomes

Chapter 3. User Interface Components

  • The Composite View Pattern
  • The UIComponent Class
  • Behavioral Interfaces
  • The Core and HTML Tag Libraries
  • Relationship to CSS
  • ID, Client ID, and Label
  • The UISelectItem(s) Class
  • Navigating the UI Tree

Chapter 4. Managed Beans

  • JavaBeans and JSF
  • Backing Beans
  • The Factory Pattern
  • Managed Beans
  • Coarse-Grained Beans
  • The Unified Expression Language
  • Value Expressions
  • Dependency Injection
  • Bean Scopes

Chapter 5. Events and Controllers

  • The Observer Pattern
  • JSF Event Model
  • Event Types and Timing
  • Event Queueing
  • ActionEvent and ActionListener
  • Action Methods
  • Connecting Controllers to Beans
  • Dynamic Outcomes
  • ValueChangeEvent and ValueChangeListener
  • Limitations of FacesListeners

Chapter 6. Converters

  • The Adapter Pattern
  • The Converter Interface
  • Standard Converters
  • Working with Enumerated Types
  • Timing of Conversion
  • Custom Converters
  • Configuring Converters

Chapter 7. Validators

  • Validating Input
  • The Validator Interface
  • Standard Validators
  • Producing Error Messages
  • Message Keys
  • Presenting Error Messages
  • Custom Validators
  • Validating Multiple Inputs
  • Using a PhaseListener

Module 2. ICEfaces

Chapter 1. Custom Components

  • UI Component Libraries
  • Using a Custom Component Library
  • The Components of a Component
  • Delivering JavaScript
  • Blending Client- and Server-Side Logic

Chapter 2. Ajax Applications

  • What is Ajax?
  • Request Formats
  • Asynchronous Response Handling
  • Alternatives: XMLHttpRequest
  • Alternatives: Direct Web Remoting
  • JSF for Ajax
  • ICEfaces

Chapter 3. ICEfaces Architecture

  • The ICEfaces Value Proposition
  • Acquiring and Configuring ICEfaces
  • PersistentFacesServlet and BlockingServlet
  • JSP, JSP Documents, and Facelets
  • Ajax via "Parital Submit"
  • Ajax Push: RenderManager vs. SessionRenderer
  • Drag and Drop
  • Security Features

Chapter 4. ICEfaces Components

  • Extended Components
  • Custom Components
  • Layout Managers
  • Component Stylesheets
  • <ice:dataTable>
  • <ice:selectDateInput>
  • <ice:panelTooltip>
  • <ice:panelPopup>
  • <ice:panelTabSet>
  • <ice:outputChart>
  • Visual Effects

Appendix A. Learning Resources

Appendix B. JSF Quick Reference

  • JSF Custom Tags
  • Packages and Classes
  • JSF API: Finding Things
  • JSF API: Controllers, Converters, and Validators

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

Java Programming Uses & Stats

Java Programming is Used For:
Android & IOS Development Software Products Video Games Desktop GUI's
Year Created

Most Commonly Used: 
According to Oracle, three billion devices run on Java.  And, because of its real-world applications, it consistently ranks at the top of the TIOBE Programming Community Index. 

Great Career Choice: 
Some of the fastest-growing salaries in the U.S. in 2018 are for Java developers.  (Glassdoor)  

Android Apps Development:
Developers predominatly use their Java skills in building apps for Google's Android. The Android platform is the number one mobile paltform in the world

It Can Run On Any Platform:
Java can compile on Windows and run the same compiled file on Linux, Windows and Mac.

Great Supporting IDE's:
Over the years, coding in Java has become simpler with the introduction of open source development tools, i.e. Eclipse and NetBeans that use Java capabilities for debugging.  


Uses a Lot of Memory:
Performance can be significantly slower with Java and more memory-consuming than natively compiled languages such as C or C++.

Difficulty in Learning: 
Learning Java can be a bit challenging if you are a beginner.  However, once you get the hang of Object Oriented Programming and a decent grasp of the syntax, you will be well on your way.

Slow Start Up Times:
There is quite a bit of one-time initialization done by JDK classes before compiling as well as loading classes and verification (making sure code doesn't do evil things, all of which takes longer that some other languages such as C. 

Verbose and Complex Code:
Long, over-complicated sentences make code less readable and scannable. Compare to let's say Python, we can see how clear Python code appears: It doesn’t require semicolons; uses “and,” “or,” and “not” as operators instead of Java’s “&&,” “||,” and “!”; and generally has fewer bells and whistles such as parentheses or curly braces.

Commercial License Cost:
Companies have to prepare for the changes that Oracle will institute in 2019 . Today, the current version of Java is free and available for redistribution for general purpose computing. However, If you are a DEVELOPER, Oracle recommends you review the roadmap information for Java SE 8 and beyond and take appropriate action depending on the type of application you develop and your distribution mode.

Java Programming Job Market
Average Salary
Job Count
Top Job Locations

New York City 
San Jose
Washington D.C, 

Complimentary Skills to have along with Java Programming

- If you are an experienced Java developer, learning a complimentary language to Java should come much more naturally.  As an example JetBrains recently created the Kotlin programming language which is officially supported by Google for mobile development.  Kotlin compiles to Java bytecode and runs on the JVM; it's purported to address many of Java's shortcomings...

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.