AEM组件中cq:template和cq:templatePath属性有什么区别?

4

AEM 6.0中的组件可以具有属性:cq:templatecq:templatePath。我在工作中发现,并不总是需要这两个属性,但我不清楚它们之间的确切区别。

1个回答

10

cq:template

cq:template的类型为nt:unstructured,它允许您定义一个具有属性和子节点的复杂节点。这是一个您创建为组件定义的子级的节点。每当从侧面栏拖入组件的新实例时,将使用此内容作为默认值。

以下是一个示例。 componentA有一个名为cq:template的子项,其类型为nt:unstructured。如果需要聚合某些属性,则节点可以具有多个属性甚至其他节点。以下是在CRXDE中的演示:

cq:template的使用

cq:templatePath

cq:templatePath的类型为String,它是一个简单的属性,其值允许您指向另一个位置上的节点,类似于使用cq:template时创建的节点。只需将其设置为要用作实际内容模板定义的节点路径即可。

如果多个组件使用的内容存在常见模式,您可以在一个地方定义模板并使用进行重用。如果内容仅适用于一个组件,请使用进行定义。

在这里,cq:templatePath仅是对应于componentA组件的节点的属性。它的值指向仓库中包含要用作模板的实际内容的不同节点。其他节点的结构与前面的示例相同。

cq:templatePath的使用

您可以在文档中找到更多信息。


我不太明白,cq:template 是 nt:unstructured 类型的模板,但同时又是 cq:template 类型的模板。这是怎么回事呢?能否请您再详细解释一下? - anubhs
cq:template是组件的一个属性,它怎么可能是nt:unstructured类型的呢?我对此有疑问。 - anubhs
这在CRX中是一个子节点。我认为在这个答案中不应该称其为属性。 - toniedzwiedz
仍然难以理解。组件不能有任何类型为cq:template的子节点? - anubhs
类型为 nt:unstructured名称cq:template - toniedzwiedz
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接