javaserver faces (jsf) basicsread.pudn.com/downloads181/ebook/846390/jsfbasics.pdf · why jsf?...
TRANSCRIPT
![Page 1: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/1.jpg)
1
JavaServer Faces(JSF) Basics
04/29/2004
![Page 2: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/2.jpg)
5
Topics ? What is and why JSF?? Quick overview on JSF architecture, concepts,
and features? Developer roles (in Web app development)? Request processing life cycle? UI Component model? Using JSF tag libraries
– Core tags, HTML tags? Backing beans (model beans)? Page navigation
04/29/2004
![Page 3: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/3.jpg)
6
Advanced Topics (We will talk about these in Advanced JSF Session)
? Backing bean (model objects) management? Navigations? Event and listeners? Validation? Rendering? Conversion? Internationalization and Localization? Custom UI component
04/29/2004
![Page 4: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/4.jpg)
10
What is & Why JSF?
04/29/2004
![Page 5: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/5.jpg)
11
JavaServer™ Faces (JSF) Framework Is…
A server side user interface component framework for Java™ technology-based web applications
04/29/2004
![Page 6: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/6.jpg)
12
What is JSF?? A specification and reference
implementation for a web application development framework
– Components– Events– Validators– Back-end-data integration
? Designed to be leveraged by tools– Sun Java Studio Creator
04/29/2004
![Page 7: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/7.jpg)
13
Why JSF? (page 1)
? MVC for web applications? Clean separation of roles? Easy to use? Extensible Component and Rendering
architecture? Support for client device independence? Standard? Huge vendor and industry support
04/29/2004
![Page 8: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/8.jpg)
14
Why JSF? (page 2)
? 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
04/29/2004
![Page 9: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/9.jpg)
15
Why JSF? (page 3)
? JSP and Servlet– No built-in UI component model
? Struts (I am not saying you should not use Struts)– No built-in UI component model– No built-in event model for UI components– No built-in state management for UI components– No built-in support of multiple renderers (Struts is
more or less tied up with HTML)– Not a standard (despite its popularity)
? Struts and JSF can be used together
04/29/2004
![Page 10: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/10.jpg)
16
JSF is a UI Framework for Java Web Applications
Client
Server
UI request
Response
(events)
(markup)
04/29/2004
![Page 11: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/11.jpg)
17
JSF Design Goals
04/29/2004
![Page 12: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/12.jpg)
18
JavaServer Faces Must Be ...? Tool friendly? Client device / protocol neutral? Usable with JavaServer Pages (JSP)? Usable without JSP? Useful in the context of HTML and today's
browsers? Scalable
04/29/2004
![Page 13: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/13.jpg)
19
Our Requirements? MVC? UI components? State management? Events? Validation and error handling? Lightning fast performance
04/29/2004
![Page 14: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/14.jpg)
20
How the JSF Specification Fits In
JSF App
Servlets (2.3)
JSP (1.2) JSF API
JSF Tags
JSF App
04/29/2004
![Page 15: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/15.jpg)
21
Quick Overview on JSF Architecture,
Concept, & Features
04/29/2004
![Page 16: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/16.jpg)
22
JSF Architecture
HTML RenderKit
AppBackend
DesktopBrowser
Phone
Frontctrl
JSF Page
JSF Page
WML
HTML
Server
WML RenderKit
04/29/2004
![Page 17: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/17.jpg)
23
Important Basic Capabilities
? Extensible UI component model? Flexible rendering model? Event handling model? Validation framework? Basic page navigation support? Internationalization? Accessibility
04/29/2004
![Page 18: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/18.jpg)
24
Key JSF Concepts? UIComponent
– Render-independent characteristics– Base class with standard behaviors
? Standard UIComponent Subclasses:– UICommand, UIForm, UIGraphic, UIInput,
UIOutput, UIPanel, UISelectBoolean, UISelectMany, UISelectOne
? FacesEvent – Base class for request and application events
? Validator – Base class for standard and application defined validators
04/29/2004
![Page 19: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/19.jpg)
25
Key JSF Concepts? Converter – Plug-in for String-Object
conversion? FacesContext – Per-Request State:
– Servlet request, response, session– JSF request, response trees– Model reference expression evaluators
? Syntax similar to the expression language of the JSP Standard Tag Library (JSTL) 1.0
? Primary interface between components and the data provided by (or to) the application
04/29/2004
![Page 20: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/20.jpg)
26
Key JSF Concepts? Renderer – Converts components to and
from a specific markup language– Supports render-dependent attributes on
components– May support more than one component type
? RenderKit – Library of Renderers– Extensible at runtime– Basic HTML RenderKit is part of the specification
04/29/2004
![Page 21: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/21.jpg)
27
Relationship to Other JSRs? JSF is based on:
– Servlet 2.3 (JSR-53)– JSP 1.2 (JSR-53)
? JSF must be synergistic with:– JSTL 1.0 (JSR-52)– Portals (JSR-168)
? JSF is not part of J2EE 1.4 standard yet– Will be considered for J2EE 1.5– It is included in J2EE 1.4 SDK, however
04/29/2004
![Page 22: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/22.jpg)
28
Developer Roles
04/29/2004
![Page 23: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/23.jpg)
29
JSF Developer Roles
Page Author
Application Developer
ComponentDeveloper
Tools Developer
JSF Implementor/
Extender
Application Extensions
04/29/2004
![Page 24: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/24.jpg)
30
Roles Definition? Page Author – Creates the user interface
of a web application– Familiar with markup language(s) to be used– Assembler of prebuilt components– Uses “Drag and drop” IDE like Sun Java Studio
Creator? Component Writer – Creates reusable
components, renderers, and libraries– Components – Render-independent properties– Renderers – Render-dependent properties
04/29/2004
![Page 25: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/25.jpg)
31
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, Convertor, Event handler
04/29/2004
![Page 26: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/26.jpg)
32
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– Example: Sun Java Studio Creator
? JSF Implementor – Provides runtime environment to execute JSF webapps
– J2EE SDK 1.4
04/29/2004
![Page 27: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/27.jpg)
33
Request ProcessingLife Cycle
04/29/2004
![Page 28: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/28.jpg)
34
Lifecycle of JSF Page? A JSF page is represented by a tree of UI
components, called a view? When a client makes a request for the page, the
lifecycle starts? During the lifecycle, JSF implementation must
build the view while considering state saved from the previous postback
? When the client performs a postback of the page, JSF implementation must perform lifecycle steps
– validation– conversion
04/29/2004
![Page 29: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/29.jpg)
35
Request Processing Lifecycle
FacesRequest Reconstitute
ComponentTree
ApplyRequestValues
ProcessEvents
ProcessValidations
ProcessEvents
ResponseComplete
ResponseComplete
Render Response
ResponseComplete
ResponseComplete
FacesResponse Render
ResponderInvoke
Application
UpdateModelValues
ProcessEvents
ProcessEvents
Conversion Errors /Render Response
Validation / ConversionErrors / Render Response
04/29/2004
![Page 30: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/30.jpg)
36
Request Processing? Life-cycle handles two types of requests
– Initial request & Postback? Initial request
– A user requests the page for the first time– Lifecycle only executes the restore view and render
response phases? Postback
– A user submits the form contained on a page that was previously loaded into the browser as a result of executing an initial request
– Lifecycle executes all phases
04/29/2004
![Page 31: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/31.jpg)
37
Request Processing LifecyclePhases1.Reconstitute component tree phase2.Apply request values phase3.Process validations phase4.Update model values phase5.Invoke application phase6.Render response phase
04/29/2004
![Page 32: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/32.jpg)
38
greeting.jsp (from guessNumer) <HTML> <HEAD> <title>Hello</title> </HEAD> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <body bgcolor="white"> <f:view> <h:form id="helloForm" > <h2>Hi. My name is Duke. I'm thinking of a number from <h:outputText value="#{UserNumberBean.minimum}"/> to <h:outputText value="#{UserNumberBean.maximum}"/>. Can you guessit?</h2> <h:graphicImage id="waveImg" url="/wave.med.gif" /> <h:inputText id="userNo" value="#{UserNumberBean.userNumber}"> <f:validateLongRange minimum="0" maximum="10" /> </h:inputText> <h:commandButton id="submit" action="success" value="Submit" /> <p> <h:message style="color: red; font-family: 'New Century Schoolbook', serif; font-style: oblique; text-decoration: overline" id="errors1" for="userNo"/> </h:form> </f:view></HTML>
04/29/2004
![Page 33: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/33.jpg)
39
Phase 1: Reconstitute Component Tree (View) Phase? When a request for a JavaServer Faces page
is made, such as when clicking on a link or a button, the JSF implementation begins the Restore view phase
– if it is the first time, an empty view is created? JSF implementation performs
– builds the view of the JavaServer Faces page – wires up event handlers and validators– saves the view in the FacesContext
04/29/2004
![Page 34: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/34.jpg)
40
Example: Component Tree (View) of greeting.jsp page of GuessNumber
helloForm
userNo submit errors1
UIView
04/29/2004
![Page 35: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/35.jpg)
41
Phase 2: Apply Request Values Phase? Each component in the tree extracts its
new value from the request parameters with its built-in decode method
? Within the decode method, the value is then converted to right type then stored locally on the component
– For userNo component in greeting.jsp page, type gets converted from String to Integer
– Conversion errors are queued on the FaceContext
04/29/2004
![Page 36: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/36.jpg)
42
Phase 3: Process Validation Phase
? JSF implementation processes all input validations registered on the components in the tree
– This is input validation (not business logic validation)? In case of validation errors
– Error messages are queued in FacesContext– Lifecycle advances directly to the Render Response
phase? Example
– userNo has be be between 1 and 10
04/29/2004
![Page 37: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/37.jpg)
43
Phase 4: Update Model Values Phase
? JSF implementation walks the component tree and set the corresponding server side object properties to the components' local values
– Update the bean properties pointed at by an input component's value attribute
– Type conversion from local value to model property type
? Example in greeting.jsp– userNumber property of the UserNumberBean is
set to the local value of the userNo component
04/29/2004
![Page 38: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/38.jpg)
44
Phase 5: Invoke Application Phase
? JSF implementation handles any application-level events, such as submitting a form or linking to another page
04/29/2004
![Page 39: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/39.jpg)
45
Phase 5: Example in GuessNumber
? The greeting.jsp page from the guessNumber example has one application-level event associated with the UICommand component
? A default ActionListener implementation retrieves the outcome, "success", from the component's action attribute
? The listener passes the outcome to the default NavigationHandler
? The NavigationHandler matches the outcome to the proper navigation rule defined in the application's application configuration file to determine what page needs to be displayed next
? JSF implementation then sets the response view to that of the new page
04/29/2004
![Page 40: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/40.jpg)
46
Phase 6: Render Response Phase? JSF implementation invokes the
components' built-in encode method and renders the components from the component tree saved in the FacesContext
– Create appropriate markup from component tree– If errors in previous phases, original page is
rendered with any queued error messages? State of the response is saved so that
subsequent requests can access it and it is available to the Restore View phase
04/29/2004
![Page 41: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/41.jpg)
47
UI ComponentModel
04/29/2004
![Page 42: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/42.jpg)
48
Sub Topics
? What is a UI component?? UI component classes? UI component rendering model? Conversion model? Event and listener model? Validation model
04/29/2004
![Page 43: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/43.jpg)
49
UI Component Model:What is a UI Component?
04/29/2004
![Page 44: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/44.jpg)
50
What is a UI Component?? A well defined, familiar idiom for UI design? Are configurable, reusable elements that
compose the user interfaces of JSF applications
? Can be simple, like a button, or compound, like a table, which can be composed of multiple components
? Extensible through composition, adding new components
? Accessible via JSF custom tags in JSP page, for example
04/29/2004
![Page 45: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/45.jpg)
51
JSF UI Component Model
? A set of UIComponent classes for specifying the state and behavior of UI components
? A rendering model that defines how to render the components in different ways.
? An event and listener model that defines how to handle component events
? A conversion model that defines how to plug in data converters onto a component
? A validation model that defines how to register validators onto a component
04/29/2004
![Page 46: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/46.jpg)
52
UI Component Model:UI Component Classes
04/29/2004
![Page 47: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/47.jpg)
53
UI Component Classes? UI Component classes specify all of the UI
component functionality– Retrieving values from input form (decoding)– Holding component state– Maintaining a reference to model objects – Driving event-handling– Rendering – creating markup (encoding)
04/29/2004
![Page 48: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/48.jpg)
54
UI Component Classes? JSF implementation provides a set of UI
component classes– Developers can extend these UI component
classes to create custom UI components? All JSF UI component classes extend from
UIComponentBase– UIComponentBase defines the default state and
behavior of a UIComponent
04/29/2004
![Page 49: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/49.jpg)
55
How UI Component classes are used by Page authors?? Most page authors and application
developers will not have to use these classes directly
– They will instead include the components on a page by using the component's corresponding tags
? Most of these component tags can be rendered in different ways
– For example, a UICommand component can be rendered as a button or a hyperlink using different tags
04/29/2004
![Page 50: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/50.jpg)
56
Built-in UI Component Classes? UICommand:
– Represents a control that fires actions when activated.
? UIForm: – Encapsulates a group of controls that submit data
to the application. This component is analogous to the form tag in HTML.
? UIGraphic: – Displays an image.
04/29/2004
![Page 51: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/51.jpg)
57
Built-in UI Component Classes? UIInput:
– Takes data input from a user– is a subclass of UIOutput
? UIOutput: – Displays data output on a page
? UIPanel – Displays a table
? UIParameter: – Represents substitution parameters
04/29/2004
![Page 52: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/52.jpg)
58
Built-in UI Component Classes? UISelectItem:
– Represents a single item in a set of items.? UISelectItems:
– Represents an entire set of items.? UISelectBoolean:
– Allows a user to set a boolean value on a control by selecting or de-selecting it. This class is a subclass of UIInput.
? UISelectMany: – Allows a user to select multiple items from a group
of items. This class is a subclass of UIInput.
04/29/2004
![Page 53: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/53.jpg)
59
Built-in UI Component Classes? UISelectOne:
– Allows a user to select one item out of a group of items.This class is a subclass of UIInput.
04/29/2004
![Page 54: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/54.jpg)
60
UI Component Model:Component Rendering
Model
04/29/2004
![Page 55: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/55.jpg)
61
Component Rendering? Rendering is handled by Render kit not by
component classes– Component writers can define the behavior of a
component once, but create multiple renderers? Page authors and application developers
can change the appearance of a component on the page by selecting the tag that represents the appropriate component/renderer combination
– <h:commandButton>– <h:commandLink>
04/29/2004
![Page 56: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/56.jpg)
62
RenderKit ? Defines how component classes map to
component tags appropriate for a particular client
? JSF implementation includes a built-in RenderKit for rendering to an HTML client
? For every UI component that a RenderKit supports, the RenderKit defines a set of Renderer objects
04/29/2004
![Page 57: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/57.jpg)
63
Renderer Object ? Defines a different way to render the
particular component to the output defined by the RenderKit
? Example– UISelectOne component has three different
renderers? One of them renders the component as a set of radio
buttons? Another renders the component as a combo box. ? The third one renders the component as a list box.
04/29/2004
![Page 58: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/58.jpg)
64
UI Component Model:JSP Custom Tags inHTML Renderer Kit
04/29/2004
![Page 59: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/59.jpg)
65
Tags in HTML Renderer Kit? Each JSP custom tag defined in the standard
HTML RenderKit class is composed of – component functionality, defined in the
UIComponent class– rendering attributes, defined by the Renderer
04/29/2004
![Page 60: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/60.jpg)
66
Example Tags? <commandButton> & <commandLink> tags
– “command” defines UI component– “Button” and “Link” defines rendering attribute
04/29/2004
![Page 61: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/61.jpg)
67
greeting.jsp <f:view> <h:form id="helloForm" > <h2>Hi. My name is Duke. I'm thinking of a number from <h:outputText value="#{UserNumberBean.minimum}"/> to <h:outputText value="#{UserNumberBean.maximum}"/>. Can you guess it? </h2>
<h:graphic_image id="waveImg" url="/wave.med.gif" /> <h:inputText id="userNo" value="#{UserNumberBean.userNumber}" validator="#{UserNumberBean.validate}"/> <h:commandButton id="submit" action="success" value="Submit" /> <p> <h:messages style="color: red; font-family: 'New Century Schoolbook', serif; font-style: oblique; text-decoration: overline" id="errors1" for="userNo"/>
</h:form> </f:view></HTML>
04/29/2004
![Page 62: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/62.jpg)
68
UI Component Model:Conversion Model
04/29/2004
![Page 63: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/63.jpg)
69
Conversion Model? A component can be associated with
server-side model object data? Two views of the component's data:
– model view – presentation view
? Component's data can be converted between the model view and the presentation view
– This conversion is usually performed automatically by the component's renderer
– Custom conversion is supported via Converter
04/29/2004
![Page 64: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/64.jpg)
70
UI Component Model:Event & Listener Model
04/29/2004
![Page 65: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/65.jpg)
71
JSF Event & Listener Model? Similar to JavaBeans event model
– Listener and Event classes that an application can use to handle events generated by UI components
– An Event object identifies the component that generated the event and stores information about the event
– To be notified of an event, an application must provide an implementation of the Listener class and register it on the component that generates the event
– When the user activates a component, such as by clicking a button, an event is fired
04/29/2004
![Page 66: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/66.jpg)
72
UI Component Model:Validation Model
04/29/2004
![Page 67: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/67.jpg)
73
Validation Model? Like the conversion model, the validation model
defines a set of standard classes for performing common data validation checks
? jsf-core tag library also defines a set of tags that correspond to the standard Validator implementations
? Most of the tags have a set of attributes for configuring the validator's properties
– minimum and maximum
04/29/2004
![Page 68: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/68.jpg)
74
greeting.jsp <f:view> <h:form id="helloForm" > <h2>Hi. My name is Duke. I'm thinking of a number from <h:output_text value="#{UserNumberBean.minimum}"/> to <h:output_text value="#{UserNumberBean.maximum}"/>. Can you guess it? </h2>
<h:graphic_image id="waveImg" url="/wave.med.gif" /> <h:inputText id="userNo" value="#{UserNumberBean.userNumber}" validator="#{UserNumberBean.validate}"/> <h:command_button id="submit" action="success" value="Submit" /> <p> <h:messages style="color: red; font-family: 'New Century Schoolbook', serif; font-style: oblique; text-decoration: overline" id="errors1" for="userNo"/>
</h:form> </f:view></HTML>
04/29/2004
![Page 69: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/69.jpg)
75
ApplicationConfiguration
04/29/2004
![Page 70: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/70.jpg)
76
Application Configuration File
? XML file for configuring resources required at application startup time
– navigation rules, converters, validators, render kits? Usually named as faces-config.xml? A <faces-config> tag must enclose all of
the other declarations<faces-config> ....</faces-config>
04/29/2004
![Page 71: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/71.jpg)
77
faces-config.xml of guessNumber<?xml version="1.0"?>
<!-- Copyright 2003 Sun Microsystems, Inc. All rights reserved. SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.-->
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
<application> <locale-config> <default-locale>en</default-locale> <supported-locale>de</supported-locale> <supported-locale>fr</supported-locale> <supported-locale>es</supported-locale> </locale-config> </application>
04/29/2004
![Page 72: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/72.jpg)
78
faces-config.xml of guessNumber <navigation-rule> ... <from-view-id>/greeting.jsp</from-view-id> ... </navigation-rule>
<navigation-rule> ... <from-view-id>/response.jsp</from-view-id> ... </navigation-rule>
<managed-bean> ... <managed-bean-name>UserNumberBean</managed-bean-name> ... <managed-bean>
</faces-config>
04/29/2004
![Page 73: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/73.jpg)
79
Application Configuration File
? You can have more than one application configuration file
? There are three ways that you can make these files available to the application]
– A resource named /META-INF/faces-config.xml in any of the JAR files in the Web application's /WEB-INF/lib directory
– A context init parameter, javax.faces.application– A resource named faces-config.xml in the
/WEB-INF/ directory of your application (most common)
04/29/2004
![Page 74: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/74.jpg)
80
Application Class
? When an application starts up, the JSF implementation creates a single instance of the Application class
? Is automatically created for each application
? FacesContext.getApplication()
04/29/2004
![Page 75: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/75.jpg)
81
Using JSFTag Libraries
04/29/2004
![Page 76: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/76.jpg)
82
Two Tag Libraries
? html_basic– Defines tags for representing common HTML user
interface components? jsf_core
– Defines other JSF related tags– Independent of any rendering technology
? JSP page need to declare them<%@ taglib uri="http://java.sun.com/jsf/html/" prefix="h" %><%@ taglib uri="http://java.sun.com/jsf/core/" prefix="f" %>
04/29/2004
![Page 77: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/77.jpg)
83
<f:view> element
? Represents UIViewRoot component? All component tags on the page must be
enclosed in the view tag<f:view> ... other faces tags, possibly mixed with other
content ...</f:view>
? Optional locale attribute– Overrides the Locale stored in the UIViewRoot
04/29/2004
![Page 78: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/78.jpg)
84
Nested View's
? Use <f:subview> element in order to include a JSF page inside another JSP page<f:subview> jsp:include page="theNestedPage.jsp"<f:subview>
04/29/2004
![Page 79: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/79.jpg)
85
Using Core Tags
04/29/2004
![Page 80: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/80.jpg)
86
Event Handling Tags and Attributes
? <f:actionListener> or actionListener attribute
– Registers an action listener on a component? <f:valueChangeListener> or
valueChangeListener attribute– Registers a value-change listener on a parent
component
04/29/2004
![Page 81: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/81.jpg)
87
Example: <f:valueChangeListener>in customerInfo.jsp (carstore)<h:inputText id="firstName" value="#{customer.firstName}" required="true">
<f:valueChangeListener type="carstore.FirstNameChanged" />
</h:inputText>
04/29/2004
![Page 82: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/82.jpg)
88
Example: actionListener attributein chooseLocale.jsp (carstore)
<h:commandButton id="NAmerica" action="storeFront"
value="#{bundle.english}"
actionListener="#{carstore.chooseLocaleFromLink}">
</h:commandButton>
04/29/2004
![Page 83: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/83.jpg)
89
Attribute Configuration Tags
? <f:attribute>– Adds configurable attributes to a parent
components
04/29/2004
![Page 84: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/84.jpg)
90
Data Conversion Tags
? <f:converter>– Registers an arbitrary converter on the parent
component? <f:convertDateTime>
– Registers a DateTime converter instance on the parent component
? <f:convertNumber>– Registers a Number converter instance on the
parent component
04/29/2004
![Page 85: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/85.jpg)
91
Facet Tag
? <f:facet>– Signifies a nested component that has a special
relationship to its enclosing tag
04/29/2004
![Page 86: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/86.jpg)
92
Parameter Substitution Tag
? <f:parameter>– Substitutes parameters into a MessageFormat
instance and to add query string name/value pairs to a URL
04/29/2004
![Page 87: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/87.jpg)
93
Tags for Representing Items in a List? <f:selectItem>
– Represents one item in a list of items in a UISelectOne or UISelectMany component
? <f:selectItems> – Represents a set of items in a UISelectOne or
UISelectMany component
04/29/2004
![Page 88: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/88.jpg)
94
Container Tags
? <f:subview>– Contains all JavaServer Faces tags in a page that
is included in another JavaServer Faces page
04/29/2004
![Page 89: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/89.jpg)
95
Validator Tags
? <f:validateDoubleRange>– Registers a DoubleRangeValidator on a component
? <f:validateLength>– Registers a LengthValidator on a component
? <f:validateLongRange>– Registers a LongRangeValidator on a component
? <f:validator>– Registers a custom Validator on a component
04/29/2004
![Page 90: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/90.jpg)
96
Output Tags
? <f:verbatim>– Generates a UIOutput component that gets its
content from the body of this tag
04/29/2004
![Page 91: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/91.jpg)
97
Using HTML Tags
04/29/2004
![Page 92: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/92.jpg)
98
HTML Tags
? Used to control display data or accept data from the user
? Common attributes– id: uniquely identifies the component– value: identifies an external data source mapped to
the component's value– binding: identifies a bean property mapped to the
component instance
04/29/2004
![Page 93: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/93.jpg)
99
Using HTML TagsUIForm & <h:form>
04/29/2004
![Page 94: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/94.jpg)
100
UIForm & <h:form> tag
? UIForm UI component– An input form with child components representing
data that is either presented to the user or submitted with the form
? Encloses all of the controls that display or collect data from the user
? Include HTML markup to layout the controls on the page
– <h:form> tag itself does not perform any layout
04/29/2004
![Page 95: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/95.jpg)
101
Using HTML TagsUICommand &
<h:commandButton>
04/29/2004
![Page 96: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/96.jpg)
102
UICommand & <h:commandButton>? UICommand component performs an
action when it is activated– Most common renderers are Button and Link
04/29/2004
![Page 97: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/97.jpg)
103
UICommand & <h:commandButton>? Additional attributes
– action: ? is either a logical outcome String or a JSF EL expression
that points to a bean method that returns a logical outcome String
? In either case, the logical outcome String is used by the navigation system to determine what page to access when the UICommand component is activated
– actionListener: ? is a JSF EL expression that points to a bean method that
processes an ActionEvent fired by the UICommand component
04/29/2004
![Page 98: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/98.jpg)
104
Example1: <h:commandButton> from carDetail.jsp<h:commandButton action="#{carstore.buyCurrentCar}" value="#{bundle.buy}" /> ? action attribute
– references a method on the CarStore backing bean that performs some processing and returns an outcome
– outcome is passed to the default NavigationHandler, which matches the outcome against a set of navigation rules defined in the application configuration file.
? value attribute – references the localized message for the button's label– bundle part of the expression refers to the
ResourceBundle that contains a set of localized messages
04/29/2004
![Page 99: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/99.jpg)
105
Example1: buyCurrentCar() method of CarStore.javapublic class CarStore extends Object { ... public String buyCurrentCar() { getCurrentModel().getCurrentPrice(); return "confirmChoices"; } ...}
04/29/2004
![Page 100: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/100.jpg)
106
Example1: Navigation rule for “conformChoices” in faces-config.xml
<navigation-rule> <from-view-id>/carDetail.jsp</from-view-id> <navigation-case> <description> Any action that returns "confirmChoices" on carDetail.jsp should cause navigation to confirmChoices.jsp </description> <from-outcome>confirmChoices</from-outcome> <to-view-id>/confirmChoices.jsp</to-view-id> </navigation-case> </navigation-rule>
04/29/2004
![Page 101: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/101.jpg)
107
Example1: Resources.properties file of carstoresunroofLabel=SunroofcruiseLabel=Cruise ControlkeylessLabel=Keyless EntrysecurityLabel=Security SystemskiRackLabel=Ski RacktowPkgLabel=Tow PackagegpsLabel=GPSbuy=Buyback=BackbuyLabel=Thanks for stopping by!
04/29/2004
![Page 102: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/102.jpg)
108
carDetail.jsp
04/29/2004
![Page 103: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/103.jpg)
109
confirmChoices.jsp
04/29/2004
![Page 104: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/104.jpg)
110
Example2: <h:commandButton> from optionsPanel.jsp <h:commandButton id="Custom" value="#{bundle.Custom}" styleClass="#{carstore.customizers.Custom.buttonStyle}" actionListener="#{carstore.choosePackage}" />
? optionsPanel.jsp is “include'd” inside carDetails.jsp
04/29/2004
![Page 105: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/105.jpg)
111
optionsPanel.jsp
04/29/2004
![Page 106: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/106.jpg)
112
Example2: choosePackage() method of CarStore.javapublic class CarStore extends Object { ... public void choosePackage(ActionEvent event) { String packageName = event.getComponent().getId(); choosePackage(packageName); } public void choosePackage(String packageName) { // Business logic processing } ...}
04/29/2004
![Page 107: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/107.jpg)
113
Using HTML TagsUIInput & UIOutput
04/29/2004
![Page 108: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/108.jpg)
114
UIInput & UIOutput Components
? UIInput component displays a value to a user and allows the user to modify this data
– The most common example is a text field? UIOutput component displays data that
cannot be modified– The most common example is a label
? Conversions can occur? Both UIInput and UIOutput components can
be rendered in several different ways
04/29/2004
![Page 109: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/109.jpg)
115
UIInput Component and Renderer Combinations? inputHidden
– Allows a page author to include a hidden variable in a page
? inputSecret– Accepts one line of text with no spaces and
displays it as a set of asterisks as it is typed? inputText
– Accepts a text string of one line? inputTextarea
– Accepts multiple lines of text
04/29/2004
![Page 110: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/110.jpg)
116
UIOutput Component and Renderer Combinations? outputLabel
– Displays a nested component as a label for a specified input field
? outputLink– Display an <a href > tag that links to another page
without generating an ActionEvent? outputMessage
– Displays a localized message? outputText
– Displays a text string of one line
04/29/2004
![Page 111: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/111.jpg)
117
Attributes of <h:inputText> and<h:outputText>? id? value? converter? validator
– JSF EL expression pointing to a backing-bean method that performs validation on the component's data
? valueChangeListener – a JSF EL expression that points to a backing- bean
method that handles the event of entering a value in this component
04/29/2004
![Page 112: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/112.jpg)
118
Example: <h:inputText> in customerInfo.jsp
? <h:inputText value="#{customer.lastName}" />
04/29/2004
![Page 113: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/113.jpg)
119
customerInfo.jsp
04/29/2004
![Page 114: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/114.jpg)
120
Example: <h:outputText> in finish.jsp (old: need to be updated)<h:outputMessage value="#{bundle.thanksLabel}"> <f:parameter value="#{sessionScope.firstName}"/></h:outputMessage> ? value attribute specifies the MessageFormat
pattern? parameter tag specifies the substitution
parameters for the messageThanks, {0}, for using carstore. Your car will ship soon.
04/29/2004
![Page 115: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/115.jpg)
121
finish.jsp
04/29/2004
![Page 116: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/116.jpg)
127
Backing Bean(Model Object)Management
04/29/2004
![Page 117: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/117.jpg)
128
What are Backing Beans?? Server-side objects associated with UI
components used in the page? Define UI component properties, each of
which is bound to – a component's value or – a component instance
? Can also define methods that perform functions associated with a component, which include validation, event handling, and navigation processing.
04/29/2004
![Page 118: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/118.jpg)
129
Why Backing Beans?? Separation of Model from View (MVC)
– Model handles application logic and data: Backing Beans are Model objects
– View handles presentation: UI components
04/29/2004
![Page 119: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/119.jpg)
130
How to Specify Backing Beans in JSP page?? A page author uses the JavaServer
Faces expression language (JSF EL) to bind a component's value or its instance to a backing bean property
– JSF EL is in the form of "#{...}"? A page author also uses the JSF EL to
refer to the backing-bean methods that perform processing for the component
04/29/2004
![Page 120: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/120.jpg)
131
Example: Binding Component Value to Backing Bean in greeting.jsp <h:inputText id="userNo" value="#{UserNumberBean.userNumber}" validator="#{UserNumberBean.validate}"/>
? userNo component's value is bound to the UserNumberBean.userNumber backing-bean property
04/29/2004
![Page 121: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/121.jpg)
132
UserNumberBean in faces-config.xml<managed-bean> <description> The "backing file" bean that backs up the guessNumber webapp </description> <managed-bean-name>UserNumberBean</managed-bean-name> <managed-bean-class>guessNumber.UserNumberBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> <managed-property> <property-name>minimum</property-name> <property-class>int</property-class> <value>0</value> </managed-property> <managed-property> <property-name>maximum</property-name> <property-class>int</property-class> <value>10</value> </managed-property></managed-bean>
04/29/2004
![Page 122: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/122.jpg)
133
Page Navigation
04/29/2004
![Page 123: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/123.jpg)
134
Define Page Navigation? Application developer responsibility
– Navigation rules are defined in the application configuration file
? Navigation rules– Determine which page to go to after the user clicks
a button or a hyperlink
04/29/2004
![Page 124: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/124.jpg)
135
Navigation Rule 1 for guessNumber Example (V1) <navigation-rule> <description> The decision rule used by the NavigationHandler to determine which view must be displayed after the current view, greeting.jsp is processed. </description> <from-view-id>/greeting.jsp</from-view-id> <navigation-case> <description> Indicates to the NavigationHandler that the response.jsp view must be displayed if the Action referenced by a UICommand component on the greeting.jsp view returns the outcome "success". </description> <from-outcome>success</from-outcome> <to-view-id>/response.jsp</to-view-id> </navigation-case> </navigation-rule>
04/29/2004
![Page 125: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/125.jpg)
136
Navigation Rule 2 for guessNumber Example (V1) <navigation-rule> <description> The decision rules used by the NavigationHandler to determine which view must be displayed after the current view, response.jsp is processed. </description> <from-view-id>/response.jsp</from-view-id> <navigation-case> <description> Indicates to the NavigationHandler that the greeting.jsp view must be displayed if the Action referenced by a UICommand component on the response.jsp view returns the outcome "success". </description> <from-outcome>success</from-outcome> <to-view-id>/greeting.jsp</to-view-id> </navigation-case> </navigation-rule>
04/29/2004
![Page 126: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/126.jpg)
137
Navigation Rule? <navigation-rule>
– defines how to get from one page (specified in the from-tree-id element) to the other pages of the application
– can contain any number of <navigation-case> elements
? <navigation-case>– defines the page to open next (defined by to-tree-id)
based on a logical outcome (defined by from-outcome)
04/29/2004
![Page 127: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/127.jpg)
138
Where can Outcome come from?
? Outcome can be defined by the action attribute of the UICommand component that submits the form
? “action” attribute can be a string or action method (#{<BackingBean>.<Method>})<h:commandButton id="submit" action="success" label="Submit" /> <h:commandButton action="#{carstore.buyCurrentCar}"
value="#{bundle.buy}" />
04/29/2004
![Page 128: JavaServer Faces (JSF) Basicsread.pudn.com/downloads181/ebook/846390/JSFBasics.pdf · Why JSF? (page 2)? Offers finer-grained separation of behavior and presentation than JSP –](https://reader034.vdocument.in/reader034/viewer/2022051605/600889e4d1dc1033d62b2ae5/html5/thumbnails/128.jpg)
139
Live your lifewith Passion!
04/29/2004