tiles:insertDefinition和tiles:insertTemplate都有putAttribute,我不理解两者之间的区别。我正在使用tile 2.x版本。
提前致谢
kranthi
答案 0 :(得分:2)
模板是一个视图,它希望提供属性,而定义是tiles.xml中定义的模板的实例(或使用API实用)。
tiles:insertDefinition要求设置名称属性,因为您要插入已在tiles.xml中放置的定义。
tiles:insertTemplate从视图中现场创建一个新定义,并希望您在该点插入值。它需要设置模板参数,没有名称属性。
一般情况下,我认为您不应经常使用这些标记中的任何一个(您可以使用应用程序创建切片,而无需使用任何一个)。避免使用它们意味着将所有定义清楚地放在一个地方并且能够看到所有定义如何组合在一起。
这个中心视图是这些标签可以破坏的最大力量。
tiles:insertDefinition仍然意味着使用命名定义,仍然有一个中心位置是所有布局都被控制但是因为我们在视图中插入定义,所以我们忽略了所有内容如何组合在一起的概述。
tiles:insertTemplate类似于JSP include,您在视图中的那一刻创建一个新定义并使用它。此图块不是总体视图的一部分。
如果论证不明确,JSP包含可以实现与Tiles相同的锅炉板代码减少。它是tile提供的总体视图,允许您轻松地在整个应用程序中轻松更改页面结构。仔细考虑这不会被破坏。