Title:
1This presentation is for informational purposes
only and may not be incorporated into a contract
or agreement.
2 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.
3(No Transcript)
4Everything You Need to Know About JavaServer
Faces and ADF Faces
Jonas JacobiPrincipal Product Manager Oracle
Corporation
This presentation is for informational purposes
only and may not be incorporated into a contract
or agreement.
5(No Transcript)
6Java Server FacesEverything you always wanted
to know but were afraid to ask
7Agenda
- JSF Introduction
- What and Why JSF?
- Architecture
- JSF Technology
- JSF and Oracle
- JDeveloper
- ADF Faces
- Future
8What 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
9Role of Faces
- Focus on components, not markup
- Automatic event and state handling
- Supports existing views and controllers
- Designed to be leveraged by tools
10Why JSF?
- So whats all the fuss about?
- What makes JSF so compelling?
- Why are IBM, Sun and Oracle devoting serious
resources to JSF? - Why another framework?
11Here is why!
JSF brings backing of a standard specification
JSR 127
Aims to simplify J2EE web application development
12Consistent Programming Model
Industrial
Browser
Phone/PDA
Gateway
HTML
RIA
Mobile
Telnet
ASK
Interface
J2EE
Bus. Logic
13Evolution of J2EE web tier
Servlets
JSP
JSF
- Each is built on the previous layer
- Progressive levels of abstraction
- Higher level programming
14JavaServer 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
15JSF 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
16JSF 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
17JSF 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
18JSF Architecture
- Abstracts away from HTTP
- Developers dont need to understand
request-response cycle - Abstracts away from HTML
- Developers work with components, not markup
- Developers dont need to decode requests
19JSF Architecture
Front Controller
BackendCode
HTML render kit
WML render kit
20Formal Phases Initial Request
JSF LIFECYCLE
Client / Browser
Restore View
Render Response
21Formal Phases - Postback
JSF LIFECYCLE
Restore View
Apply Request Values
Process Validation
Update Model
Invoke Application
Render Response
22Formal Phases (cont.) - JSP
JSP LIFECYCLE
Servlet URL parsing
Product code (state management, events, etc.)
Render JSP Response
23JSF vs. Traditional JSP
JSF
JSP
Ease of Development
Lower Level
Developer
Java
Http Requests
Events
UI Components
Markup
UI
Applications
Pages
Product
24JavaServer 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)
25The Top Three
- Component Based model
- Markup vs. Components
- Consistent Programming Model
- JSP Java
- Clear separation of Presentation and Behavior on
components
26Consistent Programming Model
Industrial
Browser
Phone/PDA
Gateway
HTML
RIA
Mobile
Telnet
ASK
Interface
J2EE
Bus. Logic
27Agenda
- JSF Introduction
- Why JSF
- Architecture
- JSF Technology
- JSF and Oracle
- JDeveloper
- ADF Faces
- Rich Web Clients
28JSF and JDeveloper 10.1.3
- JSF Visual Editing
- JSF UI Component visual editing
- Provides backend code generation
- Mobile WYSIWYG
29JSF and JDeveloper 10.1.3
- Faces Config Editing Console
- Console for productive editing of faces-config.xml
30JSF and JDeveloper 10.1.3
- JSF Page Flow
- Visually design Faces navigation model
31JSF and JDeveloper 10.1.3
- Declarative data binding JSR 227
- Drag and drop data binding support
32JDeveloper Mobile Design-Time Support
33The 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
34Demonstration
- JSF common programming model
35ADF 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
36ADF 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
37Look And Feel Customization
- ADF Faces provides two as is look and feels
- Oracles Browser Look and Feel (BLAF)
- Minimal Look And Feel (MLAF)
- ADF Faces will provide customizable look and
feels - Support declarative Look Feel definition
38ADF 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
39ADF Faces RIA
40ADF Faces Mobile Runtime Extension
J2EE Container
SMS, IM, Pager, Email
Ask Server (Resource Adapter)
ADF Faces Applications
Request
IndustrialTelnet Server (Resource Adapter)
Request
telnet
ADF Runtime
HTTP
Agent Detection
Device Repository
HTTP
Wireless Renderer Kits
View Handler Impl
41ADF 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
42Multi-client development
43Demonstration
44JSF 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
45Documentation
46Summary
- Think components, not markup
- Not just for HTML
- Plenty of opportunities for all skill levels
47A
48Learn 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
49This presentation is for informational purposes
only and may not be incorporated into a contract
or agreement.