jonas jacobi principal product manager oracle corporation
DESCRIPTION
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”. - PowerPoint PPT PresentationTRANSCRIPT
“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.
Jonas JacobiPrincipal Product ManagerOracle Corporation
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
Everything You Need to Know About JavaServer Faces and ADF Faces
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
Focus on components, not markup Automatic event and state handling Supports existing views and controllers Designed to be leveraged by tools
Role of Faces
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?
JSF brings backing of a standard specification – JSR 127
Here is why!
Aims to simplify J2EE web application development
Consistent Programming Model
J2EEJ2EE Bus. LogicBus. Logic
HTMLHTML RIARIA MobileMobile TelnetTelnet
IndustrialIndustrial
XMLXML XMLXML
HTMLHTML
Phone/PDAPhone/PDABrowserBrowser
SkinsSkins
Render KitsRender Kits
ComponentsComponents
InterfaceInterfaceJava Server Faces / JSPJava Server Faces / JSP
Faces RIFaces RI Custom JSF componentsCustom JSF componentsPortalPortal
ASKASK
GatewayGateway
Servlets JSP JSF
Evolution of J2EE web tier
Each is built on the previous layer Progressive levels of abstraction Higher level programming
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 tasksValidation, 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 request-
response cycle
• Abstracts away from HTML− Developers work with components, not markup− Developers don’t need to decode requests
JSF Architecture
HTMLrender kit
Fro
nt C
on
troller
Fro
nt C
on
troller
WMLrender kit
WMLrender kit
BackendBackendCodeCode
JSF LIFECYCLE
Formal Phases – Initial Request
Restore ViewRestore View
Client / BrowserClient / Browser
RenderRenderResponseResponse
JSF LIFECYCLE
Formal Phases - Postback
Restore ViewRestore View
Client / BrowserClient / Browser
ApplyApplyRequestRequestValuesValues
UpdateUpdateModelModel
InvokeInvokeApplicationApplication
RenderRenderResponseResponse
ProcessProcessValidationValidation
JSP LIFECYCLE
Formal Phases (cont.) - JSP
Servlet Servlet URL parsingURL parsing
Client / BrowserClient / Browser
RenderRenderJSP ResponseJSP Response
Product codeProduct code(state management, (state management,
events, etc.)events, etc.)
ApplicationsPages
UI ComponentsMarkup
JavaHttp Requests
Ease of Development
Lower Level
JSF vs. Traditional JSP
Product
UI
Events
Developer
JSFJSFJSPJSP
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
J2EEJ2EE Bus. LogicBus. Logic
HTMLHTML RIARIA MobileMobile TelnetTelnet
IndustrialIndustrial
XMLXML XMLXML
HTMLHTML
Phone/PDAPhone/PDABrowserBrowser
SkinsSkins
Render KitsRender Kits
ComponentsComponents
InterfaceInterfaceJava Server Faces / JSPJava Server Faces / JSP
Faces RIFaces RI Custom JSF componentsCustom JSF componentsPortalPortal
ASKASK
GatewayGateway
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…
J2EE Container
ADF Faces Mobile Runtime Extension
ADF FacesADF FacesApplicationsApplications
IndustrialTelnet Server
(ResourceAdapter)
Ask Server (Resource Adapter)
SMS, IM, Pager, Email
telnet
Request
Request
HTTP
ADF RuntimeADF Runtime
Wireless Renderer Kits
Agent Detection
Device Repository
HTTP
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
AQ&Q U E S T I O N SQ U E S T I O N S
A N S W E R SA N S W E R S
Learn the TechnologyVisit OTN Microsites: otn.oracle.com
Try the SoftwareVisit the Hands-On Labs in Moscone West 1003, 1004
Ask Our ExpertsFusion Middleware Demogrounds; Sessions
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”