JavaServer Faces: The Fundamentals

Download Report

Transcript JavaServer Faces: The Fundamentals

JavaServer Faces:
The Fundamentals
Compiled from
Sun TechDays workshops
(JSF Basics, Web-Tier Codecamp:
JavaServer Faces,
Java Studio Creator; IBM RAD)
JavaServer Faces (JSF)
 is a “server side user interface component
framework for Java™ technology-based web
applications”
 is a specification and reference implementation
for a web application development framework
Components
Events
Validators
Back-end-data integration
 is designed to be leveraged by tools
NetBeans, RAD (Rational Application Developer),
Eclipse, JDeveloper, etc.
Why JSF?
 MVC for web applications
 Easy to use
 Extensible Component and Rendering
architecture
 Support for client device independence
 Standard
 Huge vendor and industry support
 Built-in UI component model (unlike JSP and
Servlet)
Why JSF? (cont’d)
Offers finer-grained separation of behavior
and presentation than JSP
Component-specific event handling
UI elements as stateful objects on the server
UI-component and Web-tier concepts
without limiting you to a particular scripting
technology or markup language
Can work with any presentation technology
including JSP
JSF is a UI Framework for Java Web
Applications
JSF Architecture
Important Basic Capabilities
 Extensible UI component model
 Flexible rendering model
 Events-based interaction model (as opposed to
the old “request/response” model)
 Validation framework
 Basic page navigation support
 Internationalization
 Accessibility
How the JSF Specification Fits In
(prior to Facelets)
Facelets
 Facelets is a powerful but lightweight page declaration
language that is used to build JavaServer Faces views
using HTML style templates and to build component
trees.
 Facelets features include the following:
 Use of XHTML for creating web pages
 Support for Facelets tag libraries in addition to JavaServer Faces
and JSTL tag libraries
 Support for the Expression Language (EL)
 Templating for components and pages
Facelets (cont’d)
 Advantages of Facelets for large-scale development
projects include the following:
 Support for code reuse through templating and composite
components
 Functional extensibility of components and other server-side objects
through customization
 Faster compilation time
 Compile-time EL validation
 High-performance rendering
 In short, the use of Facelets reduces the time and
effort that needs to be spent on development and
deployment.
Source: Java EE 6 Tutorial
JSF Developer Roles
Roles Definition
 Page Author
Creates the user interface of a web application
Familiar with markup language(s) to be used
Assembler of prebuilt components
 Component Writer
Creates reusable components, renderers, and libraries
Components – Render-independent properties
Renderers – Render-dependent properties
Roles Definition
 Application Developer
Creates the server-side functionality of a web
application not directly related to the user interface
Business logic components implemented in standard
J2EE ways (EJBs, JavaBeans, Connectors)
Persistence tier components implemented in standard
J2EE ways (EJBs, JDBC, Connectors)
Model data exposed to user interface via JavaBean
programming model
Validator, Converter, Event handler
Roles Definition
 Tool Provider
Creates tools to assist page authors, component writers,
and application developers
GUI-oriented page development tools
IDEs to facilitate creation of components
Application generators (from high level description)
Web application frameworks that utilize JSF
components for their user interface
 JSF Implementor
Provides runtime environment to execute JSF webapps
J2EE SDK 1.4
Criteria for choosing Struts or
JavaServer Faces
JSF
JSP
JSP and Struts
Components
Rich UI-data-bound
components with events
provided
Custom components
Standard tags (JSTL) that
are non-UI and very basic
Custom components
through tag libraries
Struts-specific tag library
Only very basic, formbean-bound components
provided
Device independence
Reader kits that provide
device independence
None
None
Error handling and
validation
Validation framework
Many predefined
validators
None
Validation framework
driven by an XML file
(validation.xml)
Scripting
Scripts can be attached to
events
All components
accessible from scripts
Embedded Java™ in the
page
Scripts written in Java
Action classes
Form data but not
components accessible
Page flow
Simple navigation file
(faces-config.xml)
None
Sophisticated, flexible
framework
XML file based
Session and object
management
Automatic
Manual
Manual