我只是不知道为什么我会得到这个错误:
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属性,但没有用。我在文档here中找到的cascade属性
我使用的是带有struts 2.1和tiles 2.0.6的netBeans 6.9,ide不知道代码提示中的cascade属性。
发布于 2010-12-02 20:57:34
您使用的是Tiles 2.0.6,但"cascade“仅在2.1DTD中。
发布于 2011-06-15 23:58:55
这里也有同样的问题。我将dtd位置指定为http://tiles.apache.org/dtds/tiles-config_2_1.dtd。我的IDE正确地识别了它,并允许使用cascade属性。但是一旦运行,同样的错误信息也会显示出来。
发布于 2010-10-29 17:27:58
我认为问题的出现是因为您扩展了tiles customerBaseLayout,而tiles不知道您是否要将为该定义设置的值用作默认值。例如,您已经设置了put title属性,但是由于您没有将cascade=设置为“true”,因此它在userBaseLayout中不可用。将customerBaseLayout cascade="true“添加到您想要在userBaseLayout中拥有的属性。
https://stackoverflow.com/questions/4043604
复制相似问题