Tapestry

Architecture

Page
Tapestry pages are valid XHTML templates. These are automatically wired up to classes of the same name in a pages package.
Component
The Tapestry XML namespace is used to indicate elements in the template which will be automatically created as components. Expansions (similar to JSP expressions) can also be used. (Pages are also implemented as components.)

State

State is generally persisted on the server. @Persist and @ApplicationState annotations indicate data which should be persisted across postbacks, or throughout the session, respectively. The persistence strategy can be customised as required.

Source Files

src/app/Name.java
The model.
src/app/pages/A.java
The backing bean for screen A.
src/app/pages/B.java
The backing bean for screen B.
src/app/pages/C.java
The backing bean for screen C.
web/A.tml
The template for screen A.
web/B.tml
The template for screen B.
web/C.tml
The template for screen C.

Deployment

Deployment is the same as for any other Java web application with custom servlets, and can be performed with standard JEE tools.

Tools

There is no specific tool support for Tapestry 5. However, as it is a Java web application, any standard Java tools can be used. This application was developed with NetBeans.