Java Tiles-insertAttribute与putAttribute-差异/用途?

Java Tiles-insertAttribute与putAttribute-差异/用途?,java,jsp,web-applications,tiles,Java,Jsp,Web Applications,Tiles,我正在web应用程序中使用Tiles和jsp servlet。最近,我遇到了tilesinsertAttribute和puttribute标记。 回顾一下列出的两个标签(和)的文档,我能看出的唯一区别是: puttribute必须包含在父容器标记中。 因此,从功能的角度来看,标签是相似的。 puttribute具有封闭约束,而insertAttribute没有任何此类约束,似乎具有更多可使用的属性。我怀疑insertAttribute标记是后来添加到tiles框架中的 在什么情况下,一个标记(尤

我正在web应用程序中使用Tilesjsp servlet。最近,我遇到了tiles
insertAttribute
puttribute
标记。 回顾一下列出的两个标签(和)的文档,我能看出的唯一区别是:

puttribute必须包含在父容器标记中
因此,从功能的角度来看,标签是相似的。

puttribute
具有封闭约束,而
insertAttribute
没有任何此类约束,似乎具有更多可使用的属性。我怀疑
insertAttribute
标记是后来添加到tiles框架中的

在什么情况下,一个标记(尤其是
puttribute
)应该用于另一个? 欢迎提供有关差异/使用场景的任何解释/说明。

请填写此链接

将属性值插入页面

此标记可以灵活地用于将属性值插入页面。与平铺中的其他用法一样,可以确定每个属性都有一个“类型”,或者在定义时显式设置,或者“计算”。如果类型不是显式的,那么如果属性值是有效的定义,则会将其插入。否则,如果它以“/”字符开头,将被视为“模板”。最后,如果没有为它指定类型,它将被视为字符串,并且不需要任何特殊处理就可以包含在内

例如:

  <code>
            <tiles:insertAttribute name="body" />
          </code>

声明将作为属性传递给平铺的列表


声明将作为属性传递给平铺的列表。使用标记“addAttribute”或“addListAttribute”添加列表元素。此标记只能在“insertTemplate”、“insertDefinition”、“definition”标记内使用

Put attribute->您可以声明哪些内容将与指定的属性名称关联:

<definition name="admin-template-metronic" extends="metronic-template" template="/WEB-INF/templates/metronic/tiles/admin.jsp">
    <put-attribute name="html-title" value="Administrative Console"/>
    <put-attribute name="banner-content" value="/WEB-INF/templates/metronic/pages/common/banner.jsp"/>
    <put-attribute name="footer-content" value="/WEB-INF/templates/metronic/pages/common/footer.jsp"/>
    <put-attribute name="menu-content" value="/WEB-INF/templates/metronic/pages/admin/main-menu.jsp"/>
</definition>

插入属性:它将使用使用put属性定义的属性。 在您的页面中,横幅内容将替换为文件“banner.jsp”的内容


<tiles:insertAttribute name="banner-content"/>