Tapestry is a component based web application framework; components, objects which implement
the IComponent
interface, are the fundamental building blocks of Tapestry. Additional objects,
such as the the engine, IMarkupWriter
and the request cycle are infrastructure. The following figure
identifies the core Tapestry classes and interfaces.
Tapestry components can be simple or complex. They can be specific to a single application or completely generic. They can be part of an application, or they can be packaged into a component library.
All the techniques used with pages work with components as well ... pages are a specialized kind of Tapestry component. This includes specified properties (including persistent properties) and listener methods.
Components fit into the overall page rendering process because they implement the IRender
interface.
Components that inherit from BaseComponent
will use an HTML template. Components that inherit
from AbstractComponent
will render output in Java code, by implementing method
renderComponent()
.
The components provided with the framework are not special in any way: they don't have access to any special APIs or perform any special down-casts. Anything a framework component can do, can be done by your own components.