PacktLib: Tapestry 5: Building Web Applications

Tapestry 5

Credits

About the Author

About the Reviewers

Preface

Foreword

Introduction to Tapestry

Why is Tapestry Special?

Is Tapestry the Savior in the World of Java Web Development?

Summary

Creating Your Working Environment

Install a JDK

Install Maven

Install NetBeans

Installing Eclipse

Installing Tomcat

Configuring the Project in Eclipse

Summary

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

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

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

User Input Validation

Adding Validation to Components

Validators

Providing Custom Error Messages

Handling Validation-Related Form Events

Cross-Form Validation

BeanEditForm Validation

Summary

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

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

The Basics of Java for the Web

The Basics of Java for the Web

The Basics of Java for the Web

The Basics of Java for the Web

The Basics of Java for the Web

Creating a Real Data Source with db4o

Creating a Real Data Source with db4o

Creating a Real Data Source with db4o

Creating a Real Data Source with db4o

Where to Go Next