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. Autocompleting select component

New Features:

  • JSON - Brand new API enabling data communication via the JSON(JavaScript Object Notation) 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 Tapestry core, 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 javascript toolkit, we have provided it bundled with the core Tapestry jar 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 widget components 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 Autocompleter , DropdownDatePicker , DropdownTimePicker.
  • 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.

    Blue Rounded Corner Orange Rounded Corner

New Tutorials!

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.


Dojo Toolkit Most of the functionality in this series is based entirely on the wonderful Dojo javascript toolkit library. Not to 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.