AEM:删除自动生成的div

AEM:删除自动生成的div,aem,Aem,我包括一个类似以下内容的组件: <c:forEach begin="0" end="${selectList-1}" varStatus="loopSubmenu"> <sling:include path="submenu_${loopSubmenu.index}" resourceType="aemdevcenter/components/content/global-header/submenu" /> </c:forEach> 为了摆脱自动生成的

我包括一个类似以下内容的组件:

<c:forEach begin="0" end="${selectList-1}" varStatus="loopSubmenu">
<sling:include path="submenu_${loopSubmenu.index}" resourceType="aemdevcenter/components/content/global-header/submenu" />
</c:forEach>

为了摆脱自动生成的div,我在global.jsp中包含了以下代码

<%

if (WCMMode.fromRequest(request) != WCMMode.EDIT && WCMMode.fromRequest(request) != WCMMode.DESIGN && WCMMode.fromRequest(request) != WCMMode.DISABLED && WCMMode.fromRequest(request) != WCMMode.PREVIEW) {
    IncludeOptions.getOptions(request, true).forceSameContext(Boolean.TRUE);                            
}

%>

但我仍然无法摆脱自动生成的div,这会影响样式。有什么想法吗?我正在使用AEM 6.1

此外,当我尝试使用cq:noDecoration时,我失去了创作能力


感谢您在Global.jsp中包含以下代码,以便在预览模式下删除不需要的div:

<c:choose>
<c:when test="${ requestScope['com.day.cq.wcm.api.WCMMode']=='EDIT' || requestScope['com.day.cq.wcm.api.WCMMode']=='DESIGN'}">
    <c:if test="${componentContext!=null}">
        <% componentContext.setDefaultDecorationTagName("div"); %>
    </c:if>
</c:when>
<c:otherwise>
    <c:if test="${componentContext!=null}">
        <% componentContext.setDefaultDecorationTagName(""); %>
    </c:if>
</c:otherwise>

有关更多详细信息,请查看此项。

Slice在其版本之前提供了一组标记库和功能,可以帮助实现您想要的功能。标记“cog:include”具有参数“enableDecoration”,该参数允许删除装饰,例如:

<cog:include enableDecoration="${conditional}" path="some/path/" resourceType="my/component" />

另一个仍然使用切片3.2的选项是在组件节点中设置属性“cog:EnableDecorationModes”,然后使用cog:include标记,而不使用“enableDecoration”参数:

<cog:include path="some/path/" resourceType="my/component" />

不幸的是,此功能已从较新的slice版本中删除,但可以提取其代码并使用它