JavaServer Faces and Portlet Programming

Course:  JSFPORT
Duration:  5 Days
Level:  I
Course Summary

This course teaches developers how to write Java Enterprise Edition (JEE) applications that use JavaServer Faces for the Web user interface. Portlet development using WebSphere Express is included to show how it is used with JSF.

« Hide The Details
Topics Covered In This Course

Introduction to JSF

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

Writing JavaBeans

  • What is a JavaBean?
  • Why Use JavaBeans?
  • JavaBean GUI Toolkits
  • JavaBeans versus Enterprise JavaBeans
  • JavaBean Requirements
  • JavaBean Features
  • Visual versus Non-Visual Beans
  • What are Reflection and Introspection?
  • Writing JavaBean Methods
  • JavaBean Properties

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 vs. 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
  • Why Another 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

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 JPA Entity
  • The JSF Input Form
  • The Session Bean
  • What is Struts?
  • A Simple Request
  • Writing a Struts HTML Form
  • The Struts-Faces Component

The Portlet 2.0 Lifecycle

  • Portlets vs. servlets
  • Portlet and servlet containers
  • Portlets: Web components with multiple request-processing phases Portlet URLs
  • Creating portlets
  • Generating portlet content based on portlet mode 62

Communicating with Other Portlets

  • Why do you need inter-portlet communication?
  • An inter-portlet communication example
  • Inter-portlet communication using portlet sessions
  • Defining multiple portlets in the portlet deployment descriptor
  • Storing and retrieving information from PortletSession
  • Inter-portlet communication using public render parameters
  • Inter-portlet communication using portlet events
  • Retrieving portlet configuration using PortletConfig

Portlet Bridges

  • What is a portlet bridge?
  • iFrame portlets
  • JSF portlets
  • JSF web application project structure
  • Developing a portlet using a JSF portlet bridge
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
  • Understand the basics of the Facelets view technology
  • Use JSF and Portlets
Who Should Take This Course

This course is designed for Developers who will write JEE applications using JSF and Portlets.

Recommended Prerequisites

Java programming with Web development

Training Style

Instructor led with 50% lecture and 50% lab.

« Hide The Details
Related Courses
Code Course Title Duration Level
JavaServer Faces (JSF) Programming
3 Days
WebSphere Portal v6.x Programming
4 Days
Developing WebLogic 11 Portlet Applications
4 Days
WebSphere Portal 8 Administration and Deployment
5 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]