With Tiles 2.1 and 2.2 it is possible to use old Struts-Tiles definition files, since 1.1 version.
To use this feature it is needed to:
Override the createDefinitionsReader method this way:
@Override protected DefinitionsReader createDefinitionsReader(Object context, TilesApplicationContext applicationContext, TilesRequestContextFactory contextFactory) { return new CompatibilityDigesterDefinitionsReader(); }
You need to add a renderer for the "page" attribute type, that is in fact the "template" type. So override the registerAttributeRenderers method.
@Override protected void registerAttributeRenderers( BasicRendererFactory rendererFactory, Object context, TilesApplicationContext applicationContext, TilesRequestContextFactory contextFactory, TilesContainer container, AttributeEvaluator evaluator) { super.registerAttributeRenderers(rendererFactory, context, applicationContext, contextFactory, container, evaluator); TemplateAttributeRenderer templateRenderer = new TemplateAttributeRenderer(); templateRenderer.setApplicationContext(applicationContext); templateRenderer.setRequestContextFactory(contextFactory); templateRenderer.setEvaluator(evaluator); rendererFactory.registerRenderer("page", templateRenderer); }
WARNING!!! Configuration with initialization parameter has been deprecated! If you still want to use it, please refer to the 2.1 version of this page.
A better, and more powerful, choice is to rewrite the definition files, to use the new features of Tiles 2.1.
Most of XML elements and attributes can be translated one-to-one or many-to-one without losing functionality from the 1.1-1.3 to the 2.1 DTD version.
The new header to be put in your Tiles definitions files is:
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
Struts-Tiles | Apache Tiles |
<component-definitions> <tiles-definitions> | <tiles-definitions> |
page path template | template |
controllerClass controllerUrl | preparer [1] |
The page attribute type has been removed, use template instead.
The rest of the conversion is in the table below.
Struts-Tiles | Apache Tiles |
<put> | <put-attribute> |
<putList> | <put-list-attribute> |
<add> | <add-attribute> [2] <add-list-attribute> [3] |
content value | value |
direct="true" | type="string" |