JSF (JavaServer Faces)
& Apache MyFaces Training Courses
“Wonderful. In 20 years,
this is the best organized,
most pragmatic and
enjoyable course I've taken.”
“The best instructor-led
course I have attended, by far.”
“Best short course ever!”
“This course was AWESOME.
I came with very little
knowledge of JSF and now I
look forward to using it
on my next project.”
“GREAT class [JSF/MyFaces]
Do you make house calls?”
more student reviews
Here are the standard topics covered in the JSF course taught by
Marty Hall. If you have a group of
at least eight interested developers (10 for courses outside the US or Canada),
contact Marty to arrange a course
at your location. If you have fewer developers, see
the public JSF
training course page for info on the open-enrollment version in Maryland.
Please note that topics can be added or removed to fit
the interest and experience of your developers, and topics
from this training course can be combined with topics from
other related J2EE courses.
For example, some organizations want coverage of
some of the
basic servlet and JSP topics before moving on to JSF.
And many (perhaps most) organizations prefer courses that are essentially
a combination of
advanced JSP
and JSF, where the advanced JSP topics are those for which
JSF has no separate facility (declarative security, custom
tags, filters, etc.).
However, the syllabus below gives an idea of the most popular
JSF-only option.
Syllabus
Review
- Installing and running Web applications
- The MVC architecture
JSF Intro, Overview, and Setup
- Understanding JSF
- Different views of JSF
- Comparing JSF to standard servlet/JSP technology
- Comparing JSF to Apache Struts
- Setting Up JSF
- Downloading and installing in Tomcat
- Testing JSF
- Setting up JSF applications
- Accessing JSF documentation
Controlling JSF Page Navigation
- JSF flow of control
- The basic steps in using JSF
- Static navigation
- Dynamic navigation
Managed Beans
- Using beans to represent request parameters
- Declaring beans in faces-config.xml
- Outputting bean properties
- Standard JSF approach
- JSP 2.0 expression language
The JSF Expression Language
- Motivating use of the expression language
- Comparing to the JSP 2.0 EL
- Accessing bean properties
- Submitting bean properties
- Expressions in output values
- Expressions in submission values
- Expressions for action controllers
- Accessing collection elements
- Using implicit objects and operators
JSF Properties Files
- Loading properties files
- Simple messages
- Parameterized messages
- Internationalized messages
JSF Event Handling
- Comparing action controllers to event listeners
- Action listeners
- Value change listeners
- Using JavaScript to submit form
- Browser incompatibilities
- Combining action listeners and action controllers
in the same GUI element
The JSF "h" (HTML) Package
- Most common usage
- Shared attributes
- Implied attributes
- Elements that can invoke action controllers/listeners
- Elements that can invoke value change listeners
- Elements that display lists of items
Custom Apache MyFaces Components (Tomahawk)
- Tomahawk vs. Trinidad and Tobago
- Getting the MyFaces components
- Configuring MyFaces to use Tomahawk
- Most popular MyFaces components
The Ajax4jsf Component Library
- Ajax motivation
- Installation
- Main Ajax4jsf Elements
- a4j:commandButton
- a4j:commandLink
- a4j:poll
- a4j:support
- Limitations on use of h:outputText with Ajax4jsf
- Other Ajax Toolkits
Validating User Input
- Manual validation
- Implicit automatic validation
- Explicit validation
- MyFaces validators
- Creating custom validators
Accessing Databases with JDBC
- Overview of JDBC technology
- JDBC drivers
- Seven basic steps in using JDBC
- Using JNDI with JDBC
- Retrieving data from a ResultSet
- Using prepared and callable statements
- Submitting multiple statements as a transaction
Using JSF Data Tables
- Motivation
- Basic syntax
- Defining table headings
- Formatting tables with style sheets
- Displaying database tables
JSP Custom Tag Libraries: Basics
- Java-based tags
- Components of a tag library
- Basic tags
- Tags that use attributes
- Tags that use body content
- Tags that optionally use body content
- JSP-based tags (tag files)
- Components of a tag library
- Basic tags
- Tags that use attributes
- Tags that use body content
Custom JSP Tag Libraries: Advanced Topics
- Tags with dynamic attribute values
- Tags with complex objects for attributes
- Manipulating the tag body
- Looping tags
- Nested tags
- Using SAX and TagLibraryValidator
to validate tag library syntax
Developing Custom Components in JSF
- Main Pieces of Custom Components
- Java class that extends UIComponent
- Custom JSP tag
- TLD file that declares custom tag
- Entry in faces-config.xml
- JSP page that uses custom tag
- Simple output-only components
- Components that accept attributes
- Components that accept input
Facelets and Page Templating
- Facelets motivation
- Installation and setup
- Basic mechanism
- Template file
- Client file
- Templating with includes
- Handling relative URLs
- Passing data with jsp:param
Laying Out Pages with Apache Tiles
(Note: Most clients choose to cover either Facelets
or Tiles, rarely both.)
- Tiles motivations
- Setting up JSF (any implementation) for simple Tiles
- Tiles basics
- Setting up MyFaces for Tiles definitions
- Using Tiles definitions file
Using JSTL with JSF
- Obtaining JSTL documentation and code
- The JSTL Expression Language
- Looping Tags
- Conditional Evaluation Tags
- Database Access Tags
- Preserving the MVC Model
- Other Tags
|