Tiles - insertAttribute vs putAttribute - 差异/用法?

时间:2013-11-27 15:32:13

标签: java jsp web-applications tiles

我正在使用Web应用程序中的 Tiles jsp servlets 。最近,我遇到了瓷砖insertAttributeputAttribute标签。 回顾列出的标签(herehere)的文档,我能说出的唯一区别是:

putAttribute has to be enclosed in a parent container tag 因此,从功能角度来看,代码类似。

putAttribute具有封闭约束,而insertAttribute没有任何此类约束,并且似乎具有可以使用的更多数量的属性。我怀疑insertAttribute标签后来被添加到了tile框架中。

在什么情况下,是否应该将一个标签(特别是putAttribute)用于另一个标签? 任何关于差异/使用场景的解释/说明都将受到欢迎。

2 个答案:

答案 0 :(得分:2)

形成此链接

http://tiles.apache.org/framework/tiles-jsp/tlddoc/tiles/tld-summary.html

将属性的值插入页面。

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

示例:

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

声明一个列表,该列表将作为属性传递给tile。

声明一个将作为属性传递给tile的列表。使用标签'addAttribute'或'addListAttribute'添加列表元素。此标记只能在'insertTemplate','insertDefinition','definition'标记内使用。

答案 1 :(得分:0)

Put Atttribute - &gt;您声明将与指定的属性名称关联的内容:

<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-attribute定义的属性。 在您的页面中,banner-content将替换为文件内容&#34; banner.jsp&#34;

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