18
Sponsored by: Sponsored by: Sponsored by: Sponsored by: Oracle Developer Day J2EE Track: Session #3 Developing JavaServer Faces Applications Name Title

Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

Embed Size (px)

Citation preview

Page 1: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

Sponsored by:Sponsored by:Sponsored by:Sponsored by:

OracleDeveloper Day

J2EE Track: Session #3

Developing JavaServer Faces Applications

Name

Title

Page 2: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

Agenda

� Introduction to JavaServer Faces

– What is JavaServer Faces

– Goals

� Architecture

– Request Lifecycle

– JSF Components

– Developing JSF Applications

� Oracle and JSF

What is JavaServer Faces?

� Standard J2EE Web UI framework

� Developed through Java Community Process (JCP) as JSR-127, JSR-252

� Nickname: Faces

� Started: May 2001

� First release: March 2004

� Oracle is a primary contributor

Page 3: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

� Focus on components, not markup

� Automatic event and state handling

� Designed to be leveraged by tools

Goal is to simplify J2EE web application development

Role of Faces

Agenda

� Introduction to JavaServer Faces

– What is JavaServer Faces

– Goals

� Architecture

– Request Lifecycle

– JSF Components

– Developing JSF Applications

� Oracle and JSF

Page 4: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

Servlets JSP JSF

Evolution of J2EE web tier

� Each is built on the previous layer� Progressive levels of abstraction� Higher level programming

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

Page 5: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

JSF Architecture

HTMLrender kit

Fro

nt C

on

trolle

rF

ron

t Co

ntro

ller

WMLrender kit

WMLrender kit

BackendBackend

CodeCode

JSF LIFECYCLE

Formal Phases – Initial Request

Restore ViewRestore View

Client / BrowserClient / Browser

RenderRender

ResponseResponse

Page 6: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

JSF LIFECYCLE

Formal Phases - Postback

Restore ViewRestore View

Client / BrowserClient / Browser

ApplyApply

RequestRequest

ValuesValues

UpdateUpdate

ModelModelInvokeInvoke

ApplicationApplicationRenderRender

ResponseResponse

ProcessProcess

ValidationValidation

JSP LIFECYCLE

Formal Phases (cont.) - JSP

Servlet Servlet

URL parsingURL parsing

Client / BrowserClient / Browser

RenderRender

JSP ResponseJSP Response

Product codeProduct code

(state management, (state management,

events, etc.)events, etc.)

Page 7: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

JavaServer Faces and JSP

� JSF is specified to support JSP

� But need not always utilize it

� Can build your own ViewHandler

� JSF JSP support comes with a set of Base UI

Component libraries

� Core – For application tasks

� Validation, Datatype conversion

� HTML – For rendering basic HTML

� Input fields, menus, tables button

ApplicationsPages

UI ComponentsMarkup

JavaHttp Requests

Ease of Development

Lower Level

JSF vs. Traditional JSP

Product

UI

Events

Developer

JSFJSFJSPJSP

Page 8: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

JSF Components

� Basic building blocks of a JSF application

� Simple to complex UI components from a button to a complete page

� Uses Value Binding to associate Model objects

� Fully Extendable

� Components include “Helper objects”

– Validators, Converters, PhaseListeners…

JSF Components

The term “JSF Component” generally consists of:

� UIComponent

– Functionality, definition, or behavior

� Renderer

– Handle client side markup

– Bundled in RenderKit

� UI Component Tag Handler (for JSP)

– Allows usage of JSF component in JSP

– Associates Renderer with UI Component

Page 9: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

JSF Application

A typical JSF application consists of:

� JSP pages

– With JSF components wrapped as JSP tags

� Navigation Model

– Defined in the Faces configuration file

� Managed Beans

– Application logic

� Faces configuration - faces-config.xml

D E M O N S T R A T I O N

Developing a JSF Application

Page 10: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

Agenda

� Introduction to JavaServer Faces

– What is JavaServer Faces

– Goals

� Architecture

– Request Lifecycle

– JSF Components

– Developing JSF Applications

� Oracle and JSF

Oracle and JSF

� JSF Development in JDeveloper 10.1.3

– Complete visual development environment

for JSF

� Oracle ADF Faces

– Oracle’s complementary library of JSF

Components

Page 11: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

JSF and JDeveloper 10.1.3

� JSF Visual Editing

– JSF UI Component visual editing

– “Autobinding” backing code generation

Option

– Visual design

for mobile clients

JSF and JDeveloper 10.1.3

� Faces Config Editing Console

– Console for productive editing of faces-config.xml

Page 12: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

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

Page 13: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

ADF Faces - Consistent Programming Model

J2EEJ2EE Bus. LogicBus. Logic

HTMLHTML RIARIA MobileMobile TelnetTelnet

IndustrialIndustrial

XMLXML XMLXML

HTMLHTML

ITSITS

Phone/PDAPhone/PDABrowserBrowser

SkinsSkins

Render KitsRender Kits

ComponentsComponents

InterfaceInterfaceJava Server Faces / JSPJava Server Faces / JSP

Faces RIFaces RI ADF FacesADF FacesPortalPortal

ASKASK

ASAS

Oracle ADF Faces

� A set of standard JSF 1.1 components

� Runs on any compliant implementation of JSF

� Over 100 types of components

� PPR, scrollable and sortable table etc…

� Rich feature set for customizing applications

� ADF model support out-of-the-box

� Look and Feel Customization

Page 14: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

ADF Faces Components

� Accessibility and internationalization support across the board

� Framework features e.g. Dialog framework and support for processes

� Released early and often – every 4-5 weeks –on OTN

ADF Faces RIA

� RIA – Rich Internet Application

� A Rich Client combining:

– Deployment benefits of a Thin Client application

– Rich interaction of a desktop application

Page 15: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

ADF Faces RIA

� Rich Internet JSF components

� Leveraging “Ajax” technologies

� JSF components with live updates in the Browser

� Popup menus,Trees, Splitters etc…

Multi-client development

Page 16: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

D E M O N S T R A T I O N

Multi-client JSF Application

JSF Web Resources

� JSF Reference Implementation

� http://java.sun.com/j2ee/javaserverfaces/

� JSF Central – Most Popular Online JSF

Community

� http://jsfcentral.com

� Oracle Technology Network JSF Resources

� http://otn.oracle.com/jsf

Page 17: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

JSF Books

Summary

� Think components, not markup

� Not just for HTML

� Framework for both Corporate Developers and Component Developers

� 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

Page 18: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE... · Oracle Developer Day J2EE Track: ... JavaServer Faces and JSP JSF is specified to support JSP

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