だから私はこれを見つけました: 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: 属性「name」が必要であり、要素タイプ「definition」に指定する必要があります。
名前を定義しても、次のエラーが発生します。
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」と一致する必要があります。
これはどういう意味です?!!!!