因此,我发现这一点: HTTP://tiles.apache。组织/框架/教程/先进/嵌套-extending.html

下面是示例:

<definition name="myapp.homepage" template="/layouts/classic.jsp">
  <put-attribute name="title" value="Tiles tutorial homepage" />
  <put-attribute name="header" value="/tiles/banner.jsp" />
  <put-attribute name="menu" value="/tiles/common_menu.jsp" />
  <put-attribute name="body">
    <definition template="/layouts/three_rows.jsp">
      <put-attribute name="one" value="/tiles/headlines.jsp" />
      <put-attribute name="two" value="/tiles/topics.jsp" />
      <put-attribute name="one" value="/tiles/comments.jsp" />
    </definition>
  </put-attribute>
  <put-attribute name="footer" value="/tiles/credits.jsp" />
</definition>

因此,我所限定的本:

<definition name="mgmt.base.layout" extends="base.layout">
     <put-attribute name="body">
         <definition template="/WEB-INF/mgmt/config/mgmtBody.jsp"/>
             <put-attribute name="adminLeft"  value="/WEB-INF/mgmt/config/left.jsp"/>
             <put-attribute name="adminRight" value="/tiles/blank.html"/>
         </definition>
     </put-attribute>
</definition>

但有趣的是,即使自己的文件是错误的:

<强> 2009-05-12 11:20:56088 [主要] ERROR - org.apache.commons.digester.Digester.error(Digester.java:1635):解析在线路错误17列68:属性“名称”是必需的,必须为元素类型指定‘定义’。 org.xml.sax.SAXParseException:属性“名称”是必需的,必须为元素类型“定义”来指定

尽管我为它定义名称,它仍然提供了以下错误:

<强> 2009-05-12 11:35:31818 [主要] ERROR - org.apache.commons.digester.Digester.error(Digester.java:1635):解析在第21行19栏错误:内容元素类型的“把属性”必须“空”相匹配。  org.xml.sax.SAXParseException:元素类型的内容“把属性”必须“空”匹配

这是什么意思?!!!!

有帮助吗?

解决方案 2

在使用该模式要求放属性是叶节点,即不能包含子元素 - 所以你不能做到这一点。查找出来,如果该模式的较新版本(必须是在瓷砖文档或示例)允许嵌套瓦片模板。

-Kalle

所以基本上我是用瓷砖的旧版本,并使用新版本的模式: 这里是旧的嵌套模式中的语法: http://tiles.apache.org/2.0/framework/教程/先进/嵌套-extending.html

其他提示

更改DTD版本2.1解决我的问题!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top