Workshop Length
4 days
Objective
Create Java web based applications using Java Server Faces technology
Description
JSF is Sun's standard Java web development technology. It is well suited to creating web applications rich in forms and data. In this workshop, we will create a number of complete, non-trivial JSF applications. These include a database forms application, an online store, a card game and some simpler applications as well.
Unlike some courses, this won't be a simple regurgitation of the JSF specification. Instead, we'll focus on practical, JSF best practices, learned through real-life development experience. We'll also focus on working around some of JSF's pitfalls.
By the way, if you haven't noticed, this entire web site is developed using JSF.
Prerequisites
You should be familiar with Core Java
Pricing
For private, dedicated workshops see
our price page.
For public, open-enrollment workshops, see
the table to the right.
Topics
- JSF overview
- What is JSF?
- How does JSF fit in to the Java web development landscape?
- JSF concepts
- The JSF request processing life cycle
- JSF and MVC
- Components
- Tags
- Renderers
- The JSF component tree
- Getting started
- The simplest possible JSF application
- Backing Beans/Managed Beans
- faces config
- Basic data binding
- Scopes
- Example: Hello jsf
- Example: Box form
- Basic components
- h:outputText
- h:inputText
- h:command
- h:form
- f:view
- f versus h tags
- Event handling
- Actions
- ActionListeners
- When to use action versus actionListeners
- ChangeListeners
- Page navigation
- Navigation rules
- Forwards and redirects
- Multi Page Wizards
- Validation
- Converters
- Validators
- JSF Messages
- Programmatically adding messages
- Data binding
- Value binding
- Component binding
- Binding attribute versus value attribute
- EL: Expression Language
- JavaBean naming pattern review
- Value binding expressions
- Method binding expressions
- Pound versus dollar expression
- More components
- h:selectOne (listBox, menu and radio)
- h:selectMany (checkBox, menu and radio)
- h:selectBooleanCheckbox
- h:textArea
- Updatable Dynamic Tables
- h:dataTable
- Column headings
- Sorting table data
- Filtering table data
- h:column
- Styling tables
- Miscellaneous Components
- f:subview
- f:facet
- f:verbatim
- Architectural Issues
- Structuring JSF application
- Conversational Scope
- Dependency Injection
- Understanding JSF's Underpinnings
- The FacesContext object
- The Application object
- The ExternalContext object
- Shelling out to the Servlet API
- Processing request parameters manually
- JSF request parameter names
- JavaScript IDs
- Overcoming JSF Pitfalls
- Bookmarkable pages
- JSF URL woes
- Doing HTTP GET with JSF
- Out of order rendering
- JSP Problems
- Using custom 3rd components
- Using custom converters
- Using custom validators
- Using custom renderers
- Using custom UIComponents
- Tomahawk UIComponents
- Tab components
- Menu component
- Date picker
- Creating Custom Components
- Creating custom converters
- Creating custom validators
- Creating custom renderers
- Creating custom UIComponents
- Other 3rd party tools
- Page layout and templating technologies
- SiteMesh integration
- Tiles integration
- Facelets templating
- Migration and Integration
- Integrating JSF with legacy servlet/JSP applications
- Migrating to JSF from JSP/JSTL applications
- Migrating from Struts to JSF
- Integrating JavaScript and JSF
- JavaScript in JSF components
- Integration with backend technologies
- JSF with JDBC
- JSF with Hibernate/JPA
- JSF with Spring
- Introduction JSF AJAX
- Putting AJAX into JSF components
- JSF AJAX component libraries
- ICEFaces
- Java BluePrints AJAX components
- Other AJAX JSF components
- JSF IDE Tools
- WYSIWYG form designers
- Faces config editors
- Miscellaneous
- Non XML configuration
- The immediate attribute
|
|