Synopses & Reviews
JavaServer Faces, or JSF, brings a component-based model to web application development that's similar to the model that's been used in standalone GUI applications for years. The technology builds on the experience gained from Java Servlets, JavaServer Pages, and numerous commercial and open source web application frameworks that simplify the development process.In JavaServer Faces, developers learn how to use this new framework to build real-world web applications. The book contains everything you'll need: how to construct the HTML on the front end; how to create the user interface components that connect the front end to your business objects; how to write a back-end that's JSF-friendly; and how to create the deployment descriptors that tie everything together.JavaServer Faces pays particular attention to simple tasks that are easily ignored, but crucial to any real application: working with tablular data, for example, or enabling and disabling buttons. And this book doesn't hide from the trickier issues, like creating custom components or creating renderers for different presentation layers. Whether you're experienced with JSF or a just starting out, you'll find everything you need to know about this technology in this book.Topics covered include:
- The JSF environment
- Creating and rendering components
- Validating input
- Handling user-generated events
- Controlling page navigation
- Working with tabular data
- Integration between JSF and Struts
- Developing custom renderers and custom components
is a complete guide to the crucial new JSF technology. If you develop web applications, JSF belongs in your toolkit, and this book belongs in your library.
This new book shows web developers why JavaServer Faces (JSF) is a better way to build user interfaces for complex Java-based web applications.
About the Author
Hans Bergsten is the founder of Gefion Software, a company focused on Java services and products based on the J2EE technlogies. Hans has been an active participant in the working groups for both the servlet and JSP specifications from the time they were formed. He also contributes to other related JCP specifications, such as JSP Standard Tag Libraries (JSTL), and helped get the development of the Apache Tomcat reference implementation for servlet and JSP started as one of the initial members of the Apache Jakarta Project Management Committee.
Table of Contents
Preface; In This Book; Audience; Organization; About the Examples; Conventions Used in This Book; How to Contact Us; Acknowledgments; Chapter 1: Introducing JavaServer Faces; 1.1 What Is JavaServer Faces?; 1.2 How Does JSF Compare to Traditional Technologies?; 1.3 Where Does JSF Fit in the Big Picture?; 1.4 What You Need to Get Started; Chapter 2: JSF Development Process Overview; 2.1 Developing an Application with a JSF-Based User Interface; 2.2 Developing the Application Backend; 2.3 Developing Components and Integration Code; 2.4 Developing the User Interface Pages; Chapter 3: Setting Up the JSF Environment; 3.1 Installing the Java Software Development Kit; 3.2 Installing the Tomcat Server; 3.3 Testing Tomcat; 3.4 Installing the Book Examples; 3.5 Example Web Application Overview; Chapter 4: Servlet and JavaServer Pages Basics; 4.1 HTTP; 4.2 Web Application Deployment and Runtime Environment; 4.3 Servlets, Filters, and Listeners; 4.4 JavaServer Pages; 4.5 Accessing Application Data; Chapter 5: Developing the Business Logic and Setting Up Authentication; 5.1 Sample Application Overview; 5.2 Implementing the Business Logic Classes; 5.3 Authentication and Authorization; Chapter 6: Creating and Rendering Components; 6.1 The Basics; 6.2 Binding Components to Model Properties; 6.3 Conditionally Render Components; Chapter 7: Validating Input; 7.1 Dealing with Syntax Errors in User Input; 7.2 Using the Standard Validators; 7.3 Defining Custom Error Messages; 7.4 Using a Custom Validator; 7.5 Other Ways to Validate Input; Chapter 8: Handling Events; 8.1 Understanding the JSF Event Model; 8.2 Handling Application Backend Events; 8.3 Handling User Interface Events; Chapter 9: Controlling Navigation; 9.1 Moving Between JSF Views; 9.2 Returning a Non-JSF View Response; 9.3 Returning a JSF View Response to a Non-JSF Request; Chapter 10: Working with Tabular Data; 10.1 Displaying a Read-Only Table; 10.2 Processing Row-Specific Events; 10.3 Dealing with Large Tables; 10.4 Editing Tabular Data; Chapter 11: Internationalization; 11.1 Localizing Application Output; 11.2 Handling Localized Application Input; 11.3 Dealing with Non-Western Languages; Chapter 12: Odds and Ends; 12.1 Building a View from Many JSP Files; 12.2 Combining JSF Views with Other Content; 12.3 Dealing with Struts Applications and JSF; 12.4 Programmatically Modifying Components; 12.5 Using a PhaseListener; 12.6 Debugging and Error Handling Ideas; Chapter 13: Developing Custom Renderers and Other Pluggable Classes; 13.1 Developing Custom Renderers; 13.2 Using Other Custom Classes; 13.3 Packaging Custom Classes; Chapter 14: Developing Custom Components; 14.1 Extending an Existing Component; 14.2 Developing a New Component from Scratch; Chapter 15: Developing a Custom Presentation Layer; 15.1 The ViewHandler Class; 15.2 Using Java Classes as Views; 15.3 Using Pure HTML Templates with XML View Definition Files; Appendix A: Standard JSF Tag Libraries; A.1 JSF Tag Libraries URIs and Default Prefixes; A.2 HTML Tag Library Actions; A.3 Core Library Actions; Appendix B: JSF Expression Language Reference; B.1 Syntax; B.2 Variables; B.3 Data Types; B.4 Expressions and Operators; Appendix C: Standard JSF Components and Render Kits; C.1 Component Class Categories; C.2 Render-Independent Components; C.3 HTML Render Kit Classes; C.4 HTML-Specific Component Classes; C.5 Request Processing Lifecycle; Appendix D: Infrastructure API Reference; D.1 Package javax.faces; D.2 Package javax.faces.application; D.3 Package javax.faces.context; D.4 Package javax.faces.convert; D.5 Package javax.faces.el; D.6 Package javax.faces.event; D.7 Package javax.faces.lifecycle; D.8 Package javax.faces.render; D.9 Package javax.faces.validator; D.10 Package javax.faces.webapp; D.11 Identifiers for Standard JSF Messages; Appendix E: JSF Configuration File Reference; Appendix F: Web Application Structure and Deployment Descriptor Reference; F.1 Web Application File Structure; F.2 Web Application Deployment Descriptor; F.3 Creating a WAR File; Colophon;