Fork me on GitHub


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="" prefix="tiles" %>

Tags differences

Here is the toughest part: Apache Tiles™ 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 Apache Tiles™
<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 - Apache Tiles™ 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 Apache Tiles™
<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 Apache Tiles™
<tiles:get> <tiles:insertAttribute>
<tiles:definition scope="scope"> Removed, definitions are created in request scope.
<tiles:initComponentDefinitions> <tiles:initContainer>