Table of Contents
Preface
Chapter 1: Introduction to Tapestry
Chapter 2: Creating Your Working Environment
Chapter 3: The Foundations of Tapestry
Chapter 4: Simple Components
Chapter 5: Advanced Components
Chapter 6: User Input Validation
Chapter 7: Internationalization and Localization
Chapter 8: Creating Custom Components
Appendix A: The Basics of Java for the Web
Appendix B: Creating a Real Data Source with db4o
Appendix C: Where to Go Next
Index
- Chapter 1: Introduction to Tapestry
- Why is Tapestry Special?
- Tapestry HTML Templates are Free from Obtrusive Instrumentation
- Custom Components are Very Easy to Create
- AJAX and DHTML, but No JavaScript Coding
- User Input Validation Works Like Magic
- Built-In Internationalization Support
- Inversion of Control Made Easy
- Is Tapestry the Savior in the World of Java Web Development?
- The Journey of Tapestry from 3 to 5
- Summary
- Why is Tapestry Special?
- Chapter 2: Creating Your Working Environment
- Install a JDK
- Configuring the Environment for Windows
- Configuring environment for Mac OS X
- Install Maven
- Create a Skeleton Tapestry project
- Install NetBeans
- Debugging in NetBeans
- Installing Eclipse
- Installing Tomcat
- Configuring the Project in Eclipse
- Debugging in Eclipse
- Summary
- Install a JDK
- Chapter 3: The Foundations of Tapestry
- Tapestry Application is a Set of Interactive Pages
- Page Template and Page Class
- Using Expansions
- Using Components
- Passing a Value Between Pages
- What Can be Returned From an Event Handler
- Tapestry Pages are Pooled
- Making a Page Field Persistent
- Using Page Activation Context
- Different Ways of Defining Components
- Structuring the Application
- Creating and Using an Application State Object
- Was an ASO Already Instantiated?
- Summary
- Chapter 4: Simple Components
- Celebrity Collector Project
- The Auxiliary Classes
- TextField, PasswordField and PageLink
- Limiting Access to a Page
- Loop, Output and DirectLink
- Another Use of PageLink Component
- Radio and RadioGroup
- Using Enumerations for Radio Component Values
- Prefixes: prop and literal
- The If and Checkbox Components
- Submit Component
- More Than One Submit Button
- Select Component
- Configuring an Application State Object
- Summary
- Chapter 5: Advanced Components
- Grid Component
- Tweaking the Grid
- Changing the Column Titles
- Using GridDataSource
- BeanEditForm Component
- Tweaking BeanEditForm
- DateField Component
- Changing the Styles of Grid and BeanEditForm
- FCKEditor Component
- Summary
- Chapter 6: User Input Validation
- Adding Validation to Components
- Validators
- Providing Custom Error Messages
- Handling Validation-Related Form Events
- Cross-Form Validation
- BeanEditForm Validation
- Summary
- Chapter 7: Internationalization and Localization
- Internationalization on the Java Platform
- Internationalization in Tapestry
- Creating and Using Message Catalogs
- Providing a German Message Catalog
- Switching Locale
- Internationalization of Images
- Using Localized Templates
- Other Examples of Internationalization
- Summary
- Chapter 8: Creating Custom Components
- How to Create a Tapestry 5 Component
- Creating the Border Component
- Adding a Navigation Menu
- Using a Parameter
- Unleashing the Power of Select Component
- Creating an OptionModel
- Creating a SelectModel
- Creating a ValueEncoder
- Selecting a Celebrity
- DateInput Component
- Making DateInput a Field
- Adding Simple Validation
- Creating a Universal Locale Switcher
- Creating a Custom Service
- Creating a Library of Custom Components
- Summary
- Appendix A: The Basics of Java for the Web
- The Standard Structure of a Java Web Application
- The Basics of the Deployment Descriptor
- WAR Files Basics
- About Java-Enabled Servers
- Appendix B: Creating a Real Data Source with db4o
- Preparing the Database
- The Main Operations
- The Final Strokes



