包括具有相同路径两次AEM的解析?

时间:2018-02-13 18:15:46

标签: aem cq5 aem-6

我知道在同一个页面/组件中包含具有相同路径的解析会导致创作问题。

<cq:include path="par" resourceType="/apps/myproj/components/layout/parsys" /> 
<cq:include path="par" resourceType="/apps/myproj/components/layout/parsys" />

但我有一种情况,我被迫这样做。 我实际上是使用像

这样的变量参数来管理路径名
 <cq:include path="${tabs.nodeName}"
                      resourceType="/apps/myproj/components/layout/parsys" />

这是在forEach中迭代,每次迭代后 tabs.nodeName 的值都会发生变化。

但是这个循环本身被复制了两次,一次是桌面类的桌面视图,另一次是移动css类的移动视图。

所以最后,我最终得到了两个cq:includes

具有相同路径的

一个用于桌面另一个用于移动

<cq:include path="${tabs.nodeName}"
                      resourceType="/apps/myproj/components/layout/parsys" />

 <cq:include path="${tabs.nodeName}"
                      resourceType="/apps/myproj/components/layout/parsys" />

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

您可以添加范围标识符并将其用作路径的附加元素。如果您不了解上下文,它可以是语义(桌面/移动)或只是数字(从零开始,在每一步增加)

<c:set var="context" value="desktop"/>

<cq:include path="${tabs.nodeName}-${context}"
                  resourceType="/apps/myproj/components/layout/parsys" />

答案 1 :(得分:0)

我建议在编辑/设计模式下不渲染移动段落系统,或者在制作段落系统的移动渲染时将WCMMode设置为disabled。通过这种方式,您可以保留创作一次并使用两次而不会破坏创作界面的能力。