Probably you forgot to fill an attribute of a template, or you are forwarding directly to a template page with at least an attribute.
Template with attributes cannot be forwarded alone without filling their attributes. Either create a definition, or fill manually the attributes in the attribute context.
Attributes must be filled in the correct template. In other words, there are no "pass-through" attributes, that you fill in the master template and get filled in the inner ones.
In this case, usually you have to create a new definition extending from an existing one, fill the attribute in the correct template and assign the new definition as an attribute to the main template.
No. Struts-Tiles is an ancestor of Tiles 2 which grew out of the Struts project. This version is a total redesign which makes the framework easier to embed within frameworks such as Struts and Shale.
If you're a casual user, you'll probably only notice the differences in the tag libraries and in Tiles definition files. Many of them have been renamed for clarity sake and you can upgrade to Tiles2 by simple doing a global find and replace.
If you're integrating Tiles into a framework or using it for more advanced features, then you'll probably notice a world of difference. Tiles now runs as a container which encapsulates it's feature set and there is a much cleaner API. If you find that this api doesn't suffice for you, please hop on the developer list and help us flush out the next generation of Tiles!