2013-02-26 22 views
1

我在我的tiles.xml得到了這樣的定義:阿帕奇磚放列表屬性的XML錯誤

<definition name="t.base" template="/WEB-INF/tiles/base.jsp"> 
    <put-attribute name="title" value="SomeTitle" /> 
    <put-attribute name="menu" value="/WEB-INF/tiles/menu.jsp" /> 
    <put-attribute name="scripts" value="/WEB-INF/tiles/scripts.jsp" /> 
</definition> 

<definition name="t.homepage" extends="t.base" preparer="com.blogspot.symfonyworld.lyricsbase.controller.TestViewPreparer"> 
    <put-list-attribute name="body"> 
     <add-attribute value="/WEB-INF/jsp/homepage.jsp" /> 
     <add-attribute value="/WEB-INF/tiles/footer.jsp" /> 
    </put-list-attribute> 
    <put-attribute name="title" value="lyricsBase : home of lyrics" /> 
    <put-attribute name="view" value="homepage" cascade="true" /> 
</definition> 

編譯器會引發我當一個請求是針對網頁處理的異常:

org.xml.sax.SAXParseException; lineNumber: 29; columnNumber: 18; The content of element type "definition" must match "(put-attribute*,put-list-attribute*)". 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198) 

我不知道什麼是錯的 - 根據tiles docs,XML語法似乎是正確的。

回答

4

<put-list-attribute>元件必須在定義的結尾,如下所示:

<definition name="t.homepage" extends="t.base" preparer="com.blogspot.symfonyworld.lyricsbase.controller.TestViewPreparer"> 
    <put-attribute name="title" value="lyricsBase : home of lyrics" /> 
    <put-attribute name="view" value="homepage" cascade="true" /> 
    <put-list-attribute name="body"> 
     <add-attribute value="/WEB-INF/jsp/homepage.jsp" /> 
     <add-attribute value="/WEB-INF/tiles/footer.jsp" /> 
    </put-list-attribute> 
</definition>