2010-10-28 73 views
3

我只是不知道爲什麼我收到此錯誤:Tiles2誤差與奚落屬性標記級聯屬性

2010-10-28 16:32:29,925 ERROR [ache.commons.digester.Digester.error   :1635] - Parse Error at line 45 column 56: Attribute "cascade" must be declared for element type "put-attribute". 
org.xml.sax.SAXParseException: Attribute "cascade" must be declared for element type "put-attribute". 

tiles.xml看起來是這樣的(僅相關部分):

<tiles-definitions> 
<definition name="customerBaseLayout" template="/pages/customer/templates/baseLayout.jsp"> 
    <put-attribute name="title" value="Pannello Operatore"/> 
    <put-attribute name="header" value="/pages/customer/templates/header.jsp"/> 
    <put-attribute name="footer" value="/pages/customer/templates/footer.jsp"/> 
</definition> 
<definition name="userBaseLayout" extends="customerBaseLayout"> 
    <put-attribute name="header" value="/pages/guest/templates/user/header.jsp"/> 

    <put-attribute name="sidebar" cascade="true" /> 
</definition> 

我也嘗試設置value屬性,但沒用。在文檔中找到的級聯attr here

我使用netbeans 6.9與struts 2.1和tile 2.0.6 ide不知道代碼提示中的cascade屬性。

回答

10

您使用的瓷磚2.0.6而是「級聯」僅在2.1 DTD。

+1

我確實使用了2.1 dtd,但仍然看到這個錯誤。我使用的瓷磚版本是2.2 – 2011-06-15 15:59:38

0

我認爲,問題就來了,因爲你延長瓷磚customerBaseLayout和瓷磚不知道,如果你想使用的默認你把這個定義的值。例如,您已經放置了title屬性,但由於您尚未設置cascade =「true」,因此它在userBaseLayout中不可用。將customerBaseLayout cascade =「true」添加到您想在userBaseLayout中擁有的屬性中。

+0

不工作。這不是關於級聯使用的地方,而是關於xml解析器絕對確保級聯不應該在該標籤中,而是在來自並行Universe的標籤版本中。 – Psyconn 2010-11-01 08:30:48

7
這裏

同樣的問題。我指定的dtd位置爲http://tiles.apache.org/dtds/tiles-config_2_1.dtd。我的IDE正確識別它並允許級聯屬性。但一旦運行,就會顯示相同的錯誤消息。

+11

我明白了。完整的文檔類型應該是:'<!DOCTYPE瓷磚,定義PUBLIC 「 - // Apache軟件基金會// DTD塊配置2.1 // EN」 「http://tiles.apache.org/dtds/tiles-config_2_1! DTD 「>'以前,雖然我指着DTD來瓷磚-config_2_1.dtd,我還是習慣定義'」 - // Apache軟件基金會// DTD塊配置2.0 // EN「'。希望它能幫助那些遇到這個問題的人。 – 2011-07-06 18:52:30