Fork me on GitHub

Generic questions

What is Tiles?
Tiles is a view layer framework for Java EE applications that allows to separate pages into reusable pieces, according to the Composite View design pattern.

[top]


Who is the creator of Tiles?
Tiles has been created by Cédric Dumoulin, who had the idea and integrated it into Struts.

[top]


Why Tiles has this name?
We did not ask Cédric, but I think that he thought about tiling the pages. A tile here, a tile there, and you have your page complete!

[top]


Where do I start learning Tiles?
First of all you have to get started. Then check out the Tutorial

[top]


How do I get support for Tiles?
You can subscribe to the users mailing list and ask your questions there.

[top]


Who is developing Tiles?
See the team page.

[top]


How can I contribute?
Contributions and patches are easiest done via github.

[top]

Technical questions

I received an ""Attribute 'name' not found." exception. What's that?

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.

[top]


I received a NoSuchDefinitionException, but I am sure that the definition is correct. What happened?
Usually it is a problem in loading definitions. See the startup of your application: you'll probably see an exception stack trace. That is the "real" problem.

[top]


Can I have a "definition in a definition"? How can I do it?
Yes. See Nesting and extending.

[top]


I filled an attribute of a template, but it did not get in an inner template. What happened?

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.

[top]


How do I refresh a single tile without changing the other ones?
You are getting confused between frames and tiles. Although frames and tiles can be combined, in general tiles are used in place of frames. In this case the server combines all the tiles into a single web page (without any frames), so you can't refresh just one tile. You have to refresh the whole page.

[top]

Struts-Tiles relationship

Is Tiles2 compatible with the version of tiles I've been using with Struts?

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!

[top]


How can I migrate from Struts-Tiles?
We have prepared a Migration guide.

[top]


Why should I move from Struts-Tiles to Tiles 2?
Tiles 2 can be used outside of Struts: it has been integrated into Struts 1, Struts 2 and Shale. And Tiles 2 is supported by a passionate team.

[top]


Why did you change everything in Tiles 2?
To improve learning of Tiles. After the refactoring, the APIs, the TLD and the DTD are clearer than before.

[top]