No Slide Title
Download
Report
Transcript No Slide Title
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
This document is for informational purposes. It is not a commitment
to deliver any material, code, or functionality, and should not be
relied upon in making purchasing decisions. The development,
release, and timing of any features or functionality described in this
document remains at the sole discretion of Oracle. This document in
any form, software or printed matter, contains proprietary information
that is the exclusive property of Oracle. This document and
information contained herein may not be disclosed, copied,
reproduced or distributed to anyone outside Oracle without prior
written consent of Oracle. This document is not part of your license
agreement nor can it be incorporated into any contractual agreement
with Oracle or its subsidiaries or affiliates.
Everything You Need to
Know About JavaServer
Faces and ADF Faces
Jonas Jacobi
Principal Product Manager
Oracle Corporation
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
Java Server Faces
Everything you always wanted to know but were afraid to ask…
Agenda
JSF Introduction
–
–
–
What and Why JSF?
Architecture
JSF Technology
JSF and Oracle
–
–
–
JDeveloper
ADF Faces
Future
What is JSF?
Developed through Java Community
Process (JCP) as JSR-127
Nickname: Faces
Started: May 2001
First release: March 2004
Oracle is a primary contributor
Role of Faces
Focus on components, not markup
Automatic event and state handling
Supports existing views and controllers
Designed to be leveraged by tools
Why JSF?
So what’s all the fuss about?
What makes JSF so compelling?
Why are IBM, Sun and Oracle devoting
serious resources to JSF?
Why another framework?
Here is why!
JSF brings backing of a
standard specification – JSR 127
Aims to simplify J2EE web
application development
Consistent Programming Model
Industrial
Browser
Phone/PDA
Gateway
HTML
Portal
XML
XML
HTML
RIA
Faces RI
Skins
Mobile
Telnet
Custom JSF components
Java Server Faces / JSP
J2EE
ASK
Render Kits
Components
Interface
Bus. Logic
Evolution of J2EE web tier
Servlets
JSP
Each is built on the previous layer
Progressive levels of abstraction
Higher level programming
JSF
JavaServer Faces and JSP
JSF is specified to support JSP
But is not required to use it
JSF comes with two JSP base component
libraries
Core - For application tasks
Validation, Datatype conversion
HTML - For rendering basic HTML
Input fields, menus, tables button
JSF Technology
A basic JSF application consists of:
JSF UI components - encapsulated in JSP
tag libraries
Navigation Model – defines rules for
navigation
Managed Beans - facilitate the UI logic of
the application
Helper Objects – validation and conversion
JSF Technology
JSF components
Basic building blocks of a JSF application
Components can represent simple to complex
controls e.g. a button, a graph, or a complete
page.
Can be associated to Model data objects through
Value Binding
JSF components use helper objects: validators,
converters, listeners/events
JSF Component Model
JSF Components consists of three things:
UIComponents
–
Functionality, definition, or behavior
Renderers
–
Converts components to and from a specific
markup language
Render Kits
–
–
Library of Renderers
Basic HTML RenderKit is part of the
specification
JSF Architecture
• Abstracts away from HTTP
− Developers don’t need to understand requestresponse cycle
• Abstracts away from HTML
− Developers work with components, not markup
− Developers don’t need to decode requests
JSF Architecture
HTML
render kit
Front Controller
Backend
Code
WML
render kit
Formal Phases – Initial Request
JSF LIFECYCLE
Client / Browser
Restore View
Render
Response
Formal Phases - Postback
JSF LIFECYCLE
Client / Browser
Restore View
Apply
Request
Values
Process
Validation
Render
Response
Invoke
Application
Update
Model
Formal Phases (cont.) - JSP
JSP LIFECYCLE
Client / Browser
Servlet
URL parsing
Render
JSP Response
Product code
(state management,
events, etc.)
JSF vs. Traditional JSP
JSP
JSF
Developer
Lower Level
Ease of
Development
Events
Http Requests
Java
UI
Markup
UI Components
Product
Pages
Applications
JavaServer Faces - Key Points
Framework for both Corporate Developers and
Component Developers
–
Simple yet fully extendable
Fundamental unit is the Component
Built in event and state management
Component sets can be provided by any vendor
Closer to Swing or ASP.Net development
Choice of UI technology
–
–
Scale up (rich clients)
Scale down (mobile devices)
The Top Three
Component Based model
–
Markup vs. Components
Consistent Programming Model
–
JSP & Java
Clear separation of Presentation and
Behavior on components
Consistent Programming Model
Industrial
Browser
Phone/PDA
Gateway
HTML
Portal
XML
XML
HTML
RIA
Faces RI
Skins
Mobile
Telnet
Custom JSF components
Java Server Faces / JSP
J2EE
ASK
Render Kits
Components
Interface
Bus. Logic
Agenda
JSF Introduction
–
–
–
Why JSF
Architecture
JSF Technology
JSF and Oracle
–
–
–
JDeveloper
ADF Faces
Rich Web Clients
JSF and JDeveloper 10.1.3
JSF Visual Editing
–
–
–
JSF UI Component visual editing
Provides backend code generation
Mobile WYSIWYG
JSF and JDeveloper 10.1.3
Faces Config Editing Console
–
Console for productive editing of faces-config.xml
JSF and JDeveloper 10.1.3
JSF Page Flow
–
Visually design Faces navigation model
JSF and JDeveloper 10.1.3
Declarative data binding – JSR 227
–
Drag and drop data binding support
JDeveloper Mobile: Design-Time
Support
The Feature in JDeveloper
WYSIWYG editing for PDA and telnet
applications
Component filtering based on device classes
Device-specific view port
Capability-based content filtering wizard
Mobile simulator registration and integration
Demonstration
JSF common programming
model
ADF Faces
Evolution of ADF UIX
Built on top of JSF APIs
Deployable on any compliant implementation
of JSF
Over 100 types of components
– Supporting Partial-page rendering, etc.
Rich feature set for customizing applications
ADF model support out-of-the-box
ADF Faces Components
Accessibility and internationalization support
across the board
Framework features e.g. Dialog framework
and support for processes
Client side validation
–
–
Server- and client-side validation/conversion from
the same code
Use standard JSF converters and validators
(But you have to use our input components)
Released early and often – every 4-5 weeks
Look And Feel Customization
ADF Faces provides two “as is” look and
feels:
–
–
Oracle’s Browser Look and Feel (BLAF)
Minimal Look And Feel (MLAF)
ADF Faces will provide customizable
look and feels
Support declarative
Look &Feel
definition
ADF Faces RIA
Rich Internet Application (RIA)
A Rich Internet Client combining:
–
–
Deployment benefits of a Thin Client application
Rich interaction of a desktop application
Rich Internet JSF components
Leveraging “Ajax” technologies
JSF components with live updates in the
Browser
Popup menus, Trees, Splitters etc…
ADF Faces Mobile Runtime Extension
SMS, IM,
Pager,
Email
telnet
J2EE Container
Ask Server
(Resource
Adapter)
Request
Industrial
Telnet Server
(Resource
Adapter)
Request
ADF Faces
Applications
ADF Runtime
HTTP
Agent
Detection
HTTP
Wireless
Renderer Kits
Device
Repository
View Handler
Impl
ADF Faces Mobile: Supported
Devices
• Currently certified platforms
–
Windows Mobile 2003 (Pocket PC)
Partial Page Refresh (PPR) through XMLHTTP
–
Palm Web Browser 3.0
Access NetFront 3.0/3.1
–
• Minimum browser requirements for other
platforms
–
–
–
HTML 4.0
JavaScript 1.1
CSS Level 2
Multi-client development
Demonstration
Multi-client development
JSF Web Resources
Oracle Technology Network JSF Resources
http://otn.oracle.com/jsf
JSF Reference Implementation
http://java.sun.com/j2ee/javaserverfaces/
JSF Central - Popular Online JSF Community
http://www.jsfcentral.com
Documentation
Summary
Think components, not markup
Not just for HTML
Plenty of opportunities for all skill
levels
QUESTIONS
ANSWERS
Learn the Technology
Visit OTN Microsites: otn.oracle.com
Try the Software
Visit the Hands-On Labs in Moscone West 1003, 1004
Ask Our Experts
Fusion Middleware Demogrounds; Sessions
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”