Итак, я нашел это: http://tiles.apache.org/framework/tutorial/advanced/nesting-extending.html
Вот пример:
<definition name="myapp.homepage" template="/layouts/classic.jsp">
<put-attribute name="title" value="Tiles tutorial homepage" />
<put-attribute name="header" value="/tiles/banner.jsp" />
<put-attribute name="menu" value="/tiles/common_menu.jsp" />
<put-attribute name="body">
<definition template="/layouts/three_rows.jsp">
<put-attribute name="one" value="/tiles/headlines.jsp" />
<put-attribute name="two" value="/tiles/topics.jsp" />
<put-attribute name="one" value="/tiles/comments.jsp" />
</definition>
</put-attribute>
<put-attribute name="footer" value="/tiles/credits.jsp" />
</definition>
Итак, я определил это:
<definition name="mgmt.base.layout" extends="base.layout">
<put-attribute name="body">
<definition template="/WEB-INF/mgmt/config/mgmtBody.jsp"/>
<put-attribute name="adminLeft" value="/WEB-INF/mgmt/config/left.jsp"/>
<put-attribute name="adminRight" value="/tiles/blank.html"/>
</definition>
</put-attribute>
</definition>
Но забавно то, что даже их собственная документация неверна:
2009-05-12 11: 20: 56,088 [main] ОШИБКА - org.apache.commons.digester.Digester.error (Digester.java:1635): Ошибка синтаксического анализа в строке 17, столбец 68: атрибут " имя "является обязательным и должно быть указано для типа элемента" определение ". org.xml.sax.SAXParseException: атрибут «имя» является обязательным и должен быть указан для типа элемента «определение».
Несмотря на то, что я определяю имя для него, оно все равно выдает следующую ошибку:
2009-05-12 11: 35: 31,818 [main] ОШИБКА - org.apache.commons.digester.Digester.error (Digester.java:1635): Ошибка разбора в строке 21, столбец 19: содержимое типа элемента "put-attribute" должен соответствовать "null".
org.xml.sax.SAXParseException: содержимое типа элемента "put-attribute" должно соответствовать "null".
Что это значит? !!!!