2009-05-12 21 views
1

Also das ich gefunden: http://tiles.apache.org/framework/tutorial/advanced/nesting-extending.htmlNesting Apache Tiles Vorlage

Hier ist das Beispiel:

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

So dieses I definiert:

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

Aber das Witzige ist, dass auch ihre eigene Dokumentation ist falsch:

2009-05-12 11:20:56, 088 [main] ERROR - org.apache.commons.digester.Digester.error (Digester.java:1635): Parse Fehler in Zeile 17 Spalte 68: Das Attribut "name" ist erforderlich und muss für den Elementtyp "definition" angegeben werden. org.xml.sax.SAXParseException: Das Attribut "name" ist erforderlich und muss für den Elementtyp "definition" angegeben werden.

Auch wenn ich einen Namen für sie zu definieren, gibt es nach wie vor den folgenden Fehler:

2009-05-12 11: 35: 31.818 [main] ERROR - org.apache.commons.digester.Digester .error (Digester.java:1635): Parse-Fehler in Zeile 21 Spalte 19: Der Inhalt des Elementtyps "put-attribute" muss mit "null" übereinstimmen. org.xml.sax.SAXParseException: Der Inhalt des Elementtyps "put-attribute" muss mit "null" übereinstimmen.

Was bedeutet das ?!

Antwort

2

Das Schema, das Sie verwenden, erfordert, dass Put-Attribut ein Blatt-Knoten ist, d. H. Keine untergeordneten Elemente enthalten kann - so können Sie das nicht tun. Finden Sie heraus, ob eine neuere Version des Schemas (muss in Tiles docs oder examples sein) verschachtelte Kacheltemplates erlaubt.

-Kalle

Also im Grunde ist ich eine ältere Version von Fliesen und Platten verwenden und eine neue Version Schema mit: Hier ist die Syntax für älteres verschachteltes Schema: http://tiles.apache.org/2.0/framework/tutorial/advanced/nesting-extending.html

5

Ändern der DTD Version 2.1 gelöst meines Problem!