| |
| |
Foreword | |
| |
| |
Preface | |
| |
| |
Acknowledgments | |
| |
| |
About this book | |
| |
| |
About the title | |
| |
| |
About the cover illustration | |
| |
| |
| |
Getting started with Tapestry | |
| |
| |
| |
Introducing Tapestry | |
| |
| |
| |
What are web applications? | |
| |
| |
| |
What are Java servlets? | |
| |
| |
| |
Why do we need Tapestry? | |
| |
| |
| |
Understanding Tapestry's goals | |
| |
| |
| |
How does Tapestry work? | |
| |
| |
| |
Using Spindle | |
| |
| |
| |
Summary | |
| |
| |
| |
Getting started with Tapestry | |
| |
| |
| |
Introducing the Hangman application | |
| |
| |
| |
Developing the Home page | |
| |
| |
| |
Implementing the Home page using standard servlets | |
| |
| |
| |
Developing the Guess page | |
| |
| |
| |
Developing the Win and Lose pages | |
| |
| |
| |
Configuring the web.xml deployment descriptor | |
| |
| |
| |
Summary | |
| |
| |
| |
Tapestry and HTML forms | |
| |
| |
| |
Understanding HTML forms | |
| |
| |
| |
Creating a simple login form | |
| |
| |
| |
Understanding the Form component | |
| |
| |
| |
Using basic form control components | |
| |
| |
| |
Creating a to-do list | |
| |
| |
| |
Summary | |
| |
| |
| |
Advanced form components | |
| |
| |
| |
Introducing the advanced form components | |
| |
| |
| |
Creating drop-down lists with PropertySelection | |
| |
| |
| |
Recording data in the form with Hidden | |
| |
| |
| |
Looping within a form using ListEdit | |
| |
| |
| |
Handling file uploads | |
| |
| |
| |
Creating pop-up date selections using DatePicker | |
| |
| |
| |
Summary | |
| |
| |
| |
Form input validation | |
| |
| |
| |
Validating user input | |
| |
| |
| |
Building the Register page | |
| |
| |
| |
Validating input based on regular expressions | |
| |
| |
| |
Customizing label and field decorations | |
| |
| |
| |
Enabling client-side validation | |
| |
| |
| |
Handling form-level validations | |
| |
| |
| |
Using validation without ValidField | |
| |
| |
| |
Summary | |
| |
| |
| |
Creating Tapestry Components | |
| |
| |
| |
Creating reusable components | |
| |
| |
| |
Creating simple template components | |
| |
| |
| |
Creating the component specification | |
| |
| |
| |
Creating the Digit and Scaffold components | |
| |
| |
| |
Creating the Letter component | |
| |
| |
| |
Building the Spell component | |
| |
| |
| |
Building the Border component | |
| |
| |
| |
Creating interactive, reusable components | |
| |
| |
| |
Using component libraries | |
| |
| |
| |
Packaging components into libraries | |
| |
| |
| |
Summary | |
| |
| |
| |
Tapestry under the hood | |
| |
| |
| |
Processing requests | |
| |
| |
| |
Understanding the application servlet | |
| |
| |
| |
Understanding the Tapestry engine | |
| |
| |
| |
Understanding engine services | |
| |
| |
| |
Page rendering in detail | |
| |
| |
| |
Loading and pooling pages | |
| |
| |
| |
Using persistent page properties | |
| |
| |
| |
Using specified properties | |
| |
| |
| |
Localizing Tapestry applications | |
| |
| |
| |
Summary | |
| |
| |
| |
Advanced techniques | |
| |
| |
| |
Creating new engine services | |
| |
| |
| |
Client-side scripting | |
| |
| |
| |
Integrating with JavaServer Pages | |
| |
| |
| |
Summary | |
| |
| |
| |
Building complete Tapestry applications | |
| |
| |
| |
Putting it all together | |
| |
| |
| |
Introducing the Virtual Library | |
| |
| |
| |
Performing searches | |
| |
| |
| |
Logging in and registering | |
| |
| |
| |
Borrowing books | |
| |
| |
| |
Getting details about books and persons | |
| |
| |
| |
Managing your books | |
| |
| |
| |
Administering the Virtual Library | |
| |
| |
| |
Summary | |
| |
| |
| |
Implementing a Tapestry application | |
| |
| |
| |
Looking at the application layers | |
| |
| |
| |
Organizing EJB access | |
| |
| |
| |
Implementing the Search page | |
| |
| |
| |
Implementing the BookMatches page | |
| |
| |
| |
Implementing the Browser component | |
| |
| |
| |
Implementing the ColumnSorter component | |
| |
| |
| |
Implementing the Border component | |
| |
| |
| |
Authenticating the user | |
| |
| |
| |
Creating bookmarkable links | |
| |
| |
| |
Editing a Book | |
| |
| |
| |
Giving books away | |
| |
| |
| |
Editing the publishers | |
| |
| |
| |
Editing the list of users | |
| |
| |
| |
Creating the web deployment descriptor | |
| |
| |
| |
Wrapping it all up | |
| |
| |
| |
Getting involved with Tapestry | |
| |
| |
| |
Building the examples with Ant | |
| |
| |
| |
Tapestry component reference | |
| |
| |
| |
Tapestry specifications | |
| |
| |
Index | |