This project has retired. For details please refer to its Attic page.
Apache Tiles - Framework - Translation of JSP tags

Introduction

Tiles JSP tag library changed a lot, to be clearer and simpler than it was before. This means that you need to change ALL of your JSP pages accordingly.

Tag library inclusion

To include Tiles tag library, write this row on top of your JSP files:

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>

Tags differences

Here is the toughest part: Tiles 2 tags differ a lot comparing to Struts Tiles. However, after the change you will notice that the JSP code will be easier to understand.

The <tiles:insert> tag replacement

The <tiles:insert> of Struts-Tiles changed, in the sense that it has been split in different parts and many attributes have been removed. The changes are summarized in the table below.

Struts-Tiles Tiles 2
<tiles:insert> <tiles:insertTemplate>
<tiles:insertAttribute>
<tiles:insertDefinition>
component="definition_name" Use <tiles:insertDefinition name="definition_name">
attribute="attribute_name" Use <tiles:insertAttribute name="attribute_name">
page
template
template
beanName="bean_name"
beanProperty="bean_property"
beanScope="bean_scope"
value="${bean_scopeScope.bean_name.bean_property}"
controllerClass
controllerUrl
preparer [1]
  • [1] The default behaviour of preparer is to create and use a single instance of the specified class. Anyway it is still possible to use a URL as a preparer under a Struts 1 environment by using the Struts 1 - Tiles 2 integration module, still under development.

Putting and adding attributes values

The page attribute type has been removed, use template instead.

The rest of the conversion is in the table below.

Struts-Tiles Tiles 2
<tiles:put> <tiles:putAttribute>
<tiles:putList> <tiles:putAttributeList>
<tiles:add> <tiles:addAttribute> [2]
<tiles:addListAttribute> [3]
content
value
value
direct="true" type="string"
beanName="bean_name"
beanProperty="bean_property"
beanScope="bean_scope"
value="${bean_scopeScope.bean_name.bean_property}"
  • [2] <tiles:addAttribute> is used when it is needed to add a single attribute to a list attribute.
  • [3] <tiles:addListAttribute> is used when it is needed to a list attribute as an element of another list attribute.

Other changes

Struts-Tiles Tiles 2
<tiles:get> <tiles:insertAttribute>
<tiles:definition scope="scope"> Removed, definitions are created in request scope.
<tiles:initComponentDefinitions> <tiles:initContainer>