tiles:insertDefinition 和 tiles:insertTemplate 都有 putAttribute ,我不明白两者之间的区别。我使用的是 tile 2.x 版本。
提前致谢
克兰蒂
tiles:insertDefinition 和 tiles:insertTemplate 都有 putAttribute ,我不明白两者之间的区别。我使用的是 tile 2.x 版本。
提前致谢
克兰蒂
模板是期望提供属性的视图,而定义是在 tiles.xml 中定义的模板的命名实例(或实际使用 API)。
tiles:insertDefinition需要设置名称属性,因为您要插入在tiles.xml 中布局的定义。
tiles:insertTemplate从视图中当场创建一个新定义,并希望您在该点插入值。它需要设置模板参数,没有名称属性。
一般来说,我认为您不需要经常使用这些标签中的任何一个(您可以使用应用程序创建图块,而无需使用任何一个)。避免使用它们意味着将所有定义清楚地放在一个地方,并且能够看到所有定义如何组合在一起。
这个中心视图是这些标签可以破坏的最大强度。
tiles:insertDefinition 仍然意味着使用命名定义,仍然有一个中心位置,所有布局都受到控制,但是因为我们将定义插入到视图中,我们失去了对所有内容如何组合在一起的概述。
tiles:insertTemplate 类似于 JSP 包含,此时您正在视图中创建一个新定义并使用它。此图块不是总体视图的一部分。
如果争论不明确,JSP 包含可以实现与 Tiles 相同的样板代码减少。磁贴提供的总体视图使您可以轻松地在整个应用程序中轻松更改页面结构。仔细考虑这并没有被破坏。