And So I found this: http://tiles.apache.org/framework/tutorial/advanced/nesting-extending.html

This is actually the example:

<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>

And So I defined this:

<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>

However the funny part is the fact that, even their very own documentation is wrong:

2009-05-12 11:20:56,088 [primary] ERROR - org.apache.commons.digester.Digester.error(Digester.java:1635): Parse Error at line 17 column 68: Attribute "title" is needed and should be specified for element type "definition". org.xml.sax.SAXParseException: Attribute "title" is needed and should be specified for element type "definition".

Despite the fact that I define a reputation for it, still it provides the following error:

2009-05-12 11:35:31,818 [primary] ERROR - org.apache.commons.digester.Digester.error(Digester.java:1635): Parse Error at line 21 column 19: This content of element type "put-attribute" must match "null". org.xml.sax.SAXParseException: This content of element type "put-attribute" must match "null".

What's this suggest?!!!!

The schema you utilize mandates that put-attribute is really a leaf node, i.e. can't contain child elements - which means you can't do this. Discover if your more recent version from the schema (should be in Tiles paperwork or good examples) enables for nested tiles templates.

-Kalle

So essentially I'm utilizing a older version of tiles and taking advantage of latest version schema: This is actually the syntax for older nested schema: http://tiles.apache.org/2.0/framework/tutorial/advanced/nesting-extending.html

Altering the DTD version to two.1 solved my problem!

It's bad! We can not utilize it successfuly!