2010-10-28 69 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