I just don't know why i get this error:
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 de开发者_运维技巧clared for element type "put-attribute".
tiles.xml looks something like this (only relevant parts):
<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>
I did try setting the value attribute too but no use. The cascade attr I found in the documentation here
I am using netBeans 6.9 with struts 2.1 and tiles 2.0.6 The ide does not know about the cascade attribute in code hints.
You're using Tiles 2.0.6 but "cascade" is only in the 2.1 DTD.
Same issue here. I specify the dtd locatation as http://tiles.apache.org/dtds/tiles-config_2_1.dtd. My IDE correctly recognizes it and allows the cascade attribute. But once it's run, the same error message is displayed.
I think the problem comes because you extend the tile customerBaseLayout and tiles doesn't know if you want to use as default the values you put for this definition. For example you have put title attribute but as you haven't set cascade="true" it is not available in userBaseLayout. Add in customerBaseLayout cascade="true" to the attributes you want to have in userBaseLayout.
精彩评论