JavaServer Faces (5 day) Training in Raleigh

Enroll in or hire us to teach our JavaServer Faces (5 day) class in Raleigh, North Carolina by calling us @303.377.6176. Like all HSG classes, JavaServer Faces (5 day) 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, JavaServer Faces (5 day) 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 shows Java programmers how to build web applications with JavaServer Faces 2.0. We develop the best-practice concepts that are formalized by the JSF architecture, from model/view/controller to the UI component framework and request-handling lifecycle. Students start to discover that there is a "JSF way" of doing things, and we learn not just APIs and tag libraries but the habit of slicing application logic into its most reusable forms: managed beans, event listeners, converters, validators, and more. br/ Students acquire a firm command of JSF development, learning to work with JSF's list and table components, building reusable composite components, and building Ajax applications. Simple, high-level Ajax functionality is covered, and students also work more directly with JSF's JavaScript API and resource-management framework.
Course Length: 5 Days
Course Tuition: $2090 (US)

Prerequisites

This course is intended primarily for experienced Java application developers. Page authors, component developers, and others who may have little or no Java experience (but perhaps are stronger on HTML, JavaScript, and JSP) may well find this to be a valuable training experience, though without solid Java skills many of the coding exercises will be difficult to follow.

Course Outline

 

Chapter 1. Overview

  • Java EE and Web Applications
  • Perspectives: Servlets and JSP
  • Perspectives: MVC Frameworks
  • Perspectives: AWT and JFC
  • JSF Value Proposition
  • JSF Configuration
  • Issues with JSP and JSF
  • Facelets

Chapter 2. Lifecycle

  • The JSF Request/Response Cycle
  • Lifecycle Phases
  • Phase Listeners
  • The FacesContext Class
  • Who Does What
  • Partial Request Cycles

Chapter 3. UI Components

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

Chapter 4. Page Navigation

  • View Selection
  • Navigation Rules
  • Implicit Navigation
  • Problems with POSTback
  • Post/Redirect/Get
  • Support for HTTP GET
  • Conditional Navigation

Chapter 5. Managed Beans

  • JavaBeans and JSF
  • Backing Beans
  • Configuring Managed Beans
  • @ManagedBean and Related Annotations
  • The Unified Expression Language
  • Value and Method Expressions
  • Implicit Objects

Chapter 6. Scopes

  • Managed-Bean Scopes
  • Lifecycle Annotations
  • View Parameters
  • The Flash

Chapter 7. Dependency Injection

  • Managed Properties
  • Values, Lists, and Maps
  • Using Dynamic Expressions
  • Dependencies and Bean Scopes
  • The @ManagedProperty Annotation

Chapter 8. Facelets

  • Migrating from JSP
  • View Definition Languages
  • Facelets
  • Tag Libraries
  • Writing and Using Custom Tags

Chapter 9. Events and Listeners

  • JSF Event Model
  • Event Types and Timing
  • Event Queueing
  • ActionEvent and ActionListener
  • Action Methods
  • Connecting Controllers to Beans
  • ValueChangeEvent and ValueChangeListener
  • Deferring Event Processing
  • Limitations of FacesListeners

Chapter 10. Lists and Tables

  • Working with Collections
  • Why We Don't Use
  • vs.
  • Defining Columns and Facets
  • One Command Per Row
  • Reading the Row Number
  • Pseudo-Maps
  • Working with Persistent Data
  • Concurrency and Caching
  • Limiting the Scope of Queries
  • Paging

Chapter 11. Converters

  • The Converter Interface
  • Life of a Datum
  • Standard Converters
  • Custom Converters
  • The @FacesConverter Annotation
  • Timing of Conversion
  • Representing Persistent Objects by ID

Chapter 12. Validators

  • The Validator Interface
  • Standard Validators
  • Using Regular Expressions
  • Producing Error Messages
  • Message Keys
  • Presenting Error Messages
  • Posting Error Messages from Anywhere
  • Custom Validators
  • The @FacesValidator Annotation
  • Validating Multiple Inputs
  • JSR-303 Support: "Bean Validation"

Chapter 13. Resources

  • Resource Libraries
  • Deploying Images, Scripts, and Stylesheets
  • Addressing Resources

Chapter 14. Composites

  • Limitations of Custom Tags
  • Composite Components
  • Encapsulation
  • Deploying and Using Composites
  • Interface and Implementation
  • Impact on the UI Tree
  • Attributes
  • Retargeting

Chapter 15. Ajax

  • What is Ajax?
  • The XMLHttpRequest Object
  • Ajax and the JSF Lifecycle
  • Using
  • execute and render Attributes
  • Ajax Listeners

Chapter 16. The JSF JavaScript API

  • The JSF JavaScript API
  • Trigering Ajax Requests
  • Refining with Callbacks
  • onevent and onerror Attributes
  • The Ajax Request/Response Process
  • Using Hidden Inputs
  • Other JavaScript Functions

Course Directory [training on all levels]

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

Software Design/Development and System Integration Uses & Stats

Software Design/Development and System Integration is Used For:
Android & IOS Development Software Products Video Games Desktop GUI's
Difficulty
Popularity
Year Created
1995
Pros

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.  
 

Cons

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.

Software Design/Development and System Integration Job Market
Average Salary
$102,000
Job Count
26,856
Top Job Locations

New York City 
San Jose
Washington D.C, 

Complimentary Skills to have along with Software Design/Development and System Integration

- 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.