如何插入一个嵌套瓷砖

时间:2011-03-01 09:35:35

标签: jsp tiles

您好: 我知道如何在jsp页面中插入attribut和defination,但我无法插入一个嵌套的tile。

这是例外:

    <definition name="/commonPage" template="/jsp/common/template.jsp">
        <put-attribute name="header" value="/jsp/common/defaultHeader.jsp" />
        <put-attribute name="menu" value="/jsp/common/defaultMenu.jsp" />
        <put-attribute name="footer" value="/jsp/common/defaultFooter.jsp" />
    </definition>


    <definition name="/all" extends="/commonPage">
        <put-attribute name="body" value="/jsp/all_body.jsp" />
        <put-list-attribute name="scriptList">
            <add-attribute value="/res/script/all.js" />
        </put-list-attribute>
    </definition>

    <definition name="/time" extends="/commonPage">
        <put-attribute name="timebar" value="/jsp/common/timebar.jsp" />
        <put-attribute name="body" value="/jsp/time_body.jsp" />
        <put-list-attribute name="scriptList"></put-list-attribute>
    </definition>

</tiles-definitions>

在tempalte.jsp中:

....
<tiles:insertAttribute name="meun">
...
<tiles:insertAttribute name="footer">

现在,在time_body.jsp中,我想插入另一个jsp - timebar.jsp。

所以我在“/ time”的定义中定义了属性,但它不起作用。

这是time_body.jsp中的代码:

<div class="div_fullwidth">
    <tiles:insertAttribute name="timebar" />
</div>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试这样做时是否收到任何错误消息?

编辑: 所以这是我的瓷砖配置 - 我正在使用spring:

基本布局 - 在正文标记中保存没有页面特定内容的一般布局结构:

<tiles-definitions>

<definition name="default" template="/WEB-INF/layouts/default.jspx">
    <put-attribute name="leftmenu" value="/WEB-INF/layouts/partial/leftmenu.jspx" />
    <put-attribute name="footer" value="/WEB-INF/layouts/partial/footer.jspx" />
    <put-attribute name="subheader" value="/WEB-INF/layouts/partial/subheader.jspx" />
    <put-attribute name="seoheader" value="/WEB-INF/layouts/partial/seoheader.jspx" />
</definition>
    </tiles-definitions>

页面特定视图:

<tiles-definitions>
<definition extends="default" name="advice/list">
    <put-attribute name="body" value="/WEB-INF/views/advice/list.jspx"/>
</definition>
</tiles-definitions>

所以在那个页面特定的视图“建议/列表”中我想添加一个新的部分我会这样做:

<put-attribute name="timebar" value="/WEB-INF/layouts/partial/timebar.jspx" />

然后我将简单地调用通知/列表模板中的属性。

  1. 您可以检查是否在WEB-INF / web.xml文件中正确设置了tile定义。
  2. 由于您未找到 - 您是否可以尝试更改模板属性路径定义。
  3. btw:我在我的pom.xml中使用了这个依赖

    <dependency>
       <groupId>org.apache.tiles</groupId>
       <artifactId>com.springsource.org.apache.tiles</artifactId>
       <version>2.1.3</version>
    </dependency>