3

我只是不知道为什么会收到此错误:

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 属性但没有用。我在此处的文档中找到的级联属性

我正在使用带有 struts 2.1 和 tile 2.0.6 的 netBeans 6.9 ide 不知道代码提示中的 cascade 属性。

4

3 回答 3

10

您使用的是 Tiles 2.0.6,但“级联”仅在 2.1 DTD 中。

于 2010-12-02T12:57:33.857 回答
7

这里同样的问题。我将 dtd 位置指定为http://tiles.apache.org/dtds/tiles-config_2_1.dtd。我的 IDE 正确识别它并允许级联属性。但是一旦运行,就会显示相同的错误消息。

于 2011-06-15T15:58:54.867 回答
0

我认为问题的出现是因为您扩展了图块 customerBaseLayout 并且图块不知道是否要将您为此定义放置的值用作默认值。例如,您已经放置了 title 属性,但由于您没有设置 cascade="true" 它在 userBaseLayout 中不可用。将 customerBaseLayout cascade="true" 添加到您希望在 userBaseLayout 中具有的属性。

于 2010-10-29T09:27:58.137 回答