Register your product to gain access to bonus material or receive a coupon.
This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.
The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
JavaServer Faces (JSF) is the standard Java EE technology for building web user interfaces. It provides a powerful framework for developing server-side applications, allowing you to cleanly separate visual presentation and application logic. JSF 2.0 is a major upgrade, which not only adds many useful features but also greatly simplifies the programming model by using annotations and “convention over configuration” for common tasks.
To help you quickly tap into the power of JSF 2.0, the third edition of Core JavaServer™ Faces has been completely updated to make optimum use of all the new features. The book includes
Core JavaServer™ Faces, Third Edition, provides everything you need to master the powerful and time-saving features of JSF 2.0 and is the perfect guide for programmers developing Java EE 6 web apps on Glassfish or another Java EE 6-compliant application servers, as well as servlet runners such as Tomcat 6.
Preface xv
Acknowledgments xix
Chapter 1: Getting Started 2
Why JavaServer Faces? 3
A Simple Example 4
Development Environments for JSF 13
An Analysis of the Sample Application 15
A First Glimpse of Ajax [JSF 2.0 Topic] 21
JSF Framework Services 24
Behind the Scenes 26
Conclusion 31
Chapter 2: Managed Beans 32
Definition of a Bean 33
CDI Beans [CDI Topic] 39
Message Bundles 40
A Sample Application 45
Bean Scopes 51
Configuring Beans 56
The Expression Language Syntax 63
Conclusion 71
Chapter 3: Navigation 72
Static Navigation 73
Dynamic Navigation 74
Redirection 86
RESTful Navigation and Bookmarkable URLs [JSF 2.0 Topic] 88
Advanced Navigation Rules 96
Conclusion 99
Chapter 4: Standard JSF Tags100
An Overview of the JSF Core Tags 102
An Overview of the JSF HTML Tags 105
Panels 115
The Head, Body, and Form Tags 118
Text Fields and Text Areas 123
Buttons and Links 134
Selection Tags 145
Messages 171
Conclusion 177
Chapter 5: Facelets [JSF 2.0 Topic] 178
Facelets Tags 179
Templating with Facelets 181
Custom Tags 195
Loose Ends 198
Conclusion 202
Chapter 6: Data Tables 204
The Data Table Tag–h:dataTable 205
A Simple Table 207
Headers, Footers, and Captions 212
Styles 215
JSF Components in Tables 218
Editing Tables 2
Database Tables 228
Table Models
Scrolling Techniques 242
Conclusion 244
Chapter 7: Conversion and Validation 246
Overview of the Conversion and Validation Process 247
Using Standard Converters 249
Using Standard Validators 262
Bean Validation [JSF 2.0 Topic] 270
Programming with Custom Converters and Validators 275
Implementing Custom Converter and Validator Tags 297
Conclusion 303
Chapter 8: Event Handling 304
Events and the JSF Life Cycle 306
Value Change Events 307
Action Events 312
Event Listener Tags 318
Immediate Components 320
Passing Data from the UI to the Server 324
Phase Events 328
System Events [JSF 2.0 Topic] 329
Putting It All Together 338
Conclusion 345
Chapter 9: Composite Components [JSF 2.0 Topic] 346
The Composite Tag Library 348
Using Composite Components 350
Implementing Composite Components 352
Configuring Composite Components 353
Attribute Types 354
Required Attributes and Default Attribute Values 355
Manipulating Server-Side Data 356
Localizing Composite Components 359
Exposing a Composite’s Components 360
Facets 365
Children 366
JavaScript 368
Backing Components 373
Packaging Composite Components in JARs 382
Conclusion 383
Chapter 10: Ajax [JSF 2.0] 384
Ajax and JSF 386
The JSF Life Cycle and Ajax 387
The JSF Ajax Recipe 388
The f:ajax Tag 389
Ajax Groups 392
Ajax Field Validation 394
Ajax Request Monitoring 396
JavaScript Namespaces 398
Handling Ajax Errors 400
Ajax Responses 400
The JSF 2.0 JavaScript Library 403
Passing Additional Ajax Request Parameters 405
Queueing Events 407
Coalescing Events 408
Intercepting jsf.ajax.request() 409
Using Ajax in Composite Components 409
Conclusion 416
Chapter 11: Custom Components, Converters, and Validators 418
Implementing a Component Class 420
Encoding: Generating Markup 424
Decoding: Processing Request Values 427
The Tag Library Descriptor [JSF 2.0 Topic] 433
Using an External Renderer 438
Processing Tag Attributes [JSF 2.0 Topic] 441
Encoding JavaScript 453
Using Child Components and Facets 457
Saving and Restoring State 468
Building Ajax Components [JSF 2.0 Topic] 473
Implementing Self-Contained Ajax in
Custom Components 475
Conclusion 484
Chapter 12: External Services 486
Database Access with JDBC 487
Configuring a Data Source 495
Using the Java Persistence Architecture 507
Container-Managed Authentication and Authorization 519
Sending Mail 532
Using Web Services 537
Conclusion 544
Chapter 13: How Do I . . . ? 546
How do I find more components? 547
How do I support file uploads? 548
How do I show an image map? 557
How do I produce binary data in a JSF page? 559
How do I show a large data set, one page at a time? 568
How do I generate a pop-up window? 573
How do I selectively show and hide parts of a page? 581
How do I customize error pages? 582
How do I write my own client-side validation tag? 588
How do I configure my application? 595
How do I extend the JSF expression language? 596
How do I add a function to the JSF expression language? [JSF 2.0 Topic] 599
How do I monitor the traffic between the browser and the server? 601
How do I debug a stuck page? 602
How do I use testing tools when developing a JSF application? 604
How do I use Scala with JSF? 605
How do I use Groovy with JSF? 607
Conclusion 608
Index 609