Tapestry 4.1 - Dojo Integrated
Tapestry is an open-source framework for creating dynamic, robust, highly scalable
web applications in Java. Tapestry complements and builds upon the standard Java
Servlet API, and so it works in any servlet container or application server.
This development series is focused around providing a full layer of support for building
highly dynamic web applications (XHR/ajax/dhtml). Whether you would like to sprinkle in a
few tiny ajax effects in an existing application, or build a full featured heavy client
application Tapestry(and dojo) should be able to
support your needs.
- JSON - Brand new API
enabling data communication via the
standard. New component classes
and rendering schemes also accompany the API addition, allowing anyone to easily
add JSON communication to an existing component or new components.
- XHR - The ever popular XML communication format has also been added into the
allowing most of the common ajax concepts to be easily developed in yours
and existing Tapestry components.
- Dojo bundled - As all of the functionality
in this release is based around the dojo
files. No profile building/installation necessary. Just drop the jars in and
get at all of the client side goodies you like.
- Widgets - New dojo toolkit based
and complimenting foundation Component classes make it easy for anyone to create
dojo widgets and use them as Tapestry components. The initial 4.1 release won't be
as focused on providing new components as it will solid infrastructure support, but
more and more will be included as the release matures. Currently included are
- Client Side Validation - The client side validation support
in Tapestry has been completely replaced with a new dojo based API,
providing richer and more complete validation than has been
seen in previous releases. All of the validation constraints that can be specified on the server now have
client side functional equivalents. Default logic for displaying validation errors/interactions on the client side
UI has also been updated a great deal. The old alert box mechanism has been replaced by field
decorators that apply css rules to your form fields, as well as dhtml dialog boxes displaying
summaries of errors. Much much more is planned in this area, but the current set of functionality
should be more than enough to make many happy.
- New Annotations - Perhaps the most exciting new addition, a new @EventListener
annotation has been added. This will allow people to bind one of their page/component
class listeners to virtually any client side widget/html event concievable. The API also supports
varying types of listening, such as being able to submit a form when a particular event happens,
or simplying using the new BrowserEvent
object to determine the client side state when the event happened.
(Such as x/y coordinates of mouse clicks, event targets, etc..This is pretty
much a literal one-to-one mapping to real browser generated Events.)
- Rounded Corner/Drop Shadow services - Check out some of the cool new
image generation services available.
A great new Devshed Tutorial Series
written by Alexander Kolesnikov
has been slowly
building up as he continues to pump new articles out.
The amount of material covered is closer to being an actual book than a random set of tutorials. This is
well worth reading for anyone wanting to get a better overall handle on using Tapestry 4.
Getting started?: Try the Tapestry 4 Archetype
Try the maven2 Archetype
to bootstrap your project with some typical configurations.
Most of the functionality in this series is based entirely on the wonderful
say that you won't easily be able to plug in another toolkit if you like, just
that the defaults will all be based around dojo.