【问题标题】:apache tiles put-list-attribute XML errorapache tile put-list-attribute XML 错误
【发布时间】:2013-02-26 23:52:00
【问题描述】:

我的tiles.xml中有这样的定义:

<definition name="t.base" template="/WEB-INF/tiles/base.jsp">
    <put-attribute name="title" value="SomeTitle" />
    <put-attribute name="menu" value="/WEB-INF/tiles/menu.jsp" />
    <put-attribute name="scripts" value="/WEB-INF/tiles/scripts.jsp" />
</definition>

<definition name="t.homepage" extends="t.base" preparer="com.blogspot.symfonyworld.lyricsbase.controller.TestViewPreparer">
    <put-list-attribute name="body">
        <add-attribute value="/WEB-INF/jsp/homepage.jsp" />
        <add-attribute value="/WEB-INF/tiles/footer.jsp" />
    </put-list-attribute>
    <put-attribute name="title" value="lyricsBase : home of lyrics" />
    <put-attribute name="view" value="homepage" cascade="true" />
</definition>

在处理主页请求时,编译器会抛出异常:

org.xml.sax.SAXParseException; lineNumber: 29; columnNumber: 18; The content of element type "definition" must match "(put-attribute*,put-list-attribute*)".
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)

我不知道出了什么问题 - 根据tiles docs,XML 语法似乎是正确的。

【问题讨论】:

    标签: list jakarta-ee attributes tiles


    【解决方案1】:

    &lt;put-list-attribute&gt;元素必须在定义的末尾,如下:

    <definition name="t.homepage" extends="t.base" preparer="com.blogspot.symfonyworld.lyricsbase.controller.TestViewPreparer">
        <put-attribute name="title" value="lyricsBase : home of lyrics" />
        <put-attribute name="view" value="homepage" cascade="true" />
        <put-list-attribute name="body">
            <add-attribute value="/WEB-INF/jsp/homepage.jsp" />
            <add-attribute value="/WEB-INF/tiles/footer.jsp" />
        </put-list-attribute>
    </definition>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多