Hybris:如何将 class 作为参数传递给 cms:component?

Hybris: How to pass class as a parameter to cms:component?

我已经开始学习 Hybris,我想了解如何将 class 作为参数传递给自定义 CMS 组件(用于组件的根元素)。

假设在名为 customNavigationComponent.jsp 的 jsp 文件中,我有这段代码:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags"%>

<c:forEach items="${navigation.entries}" var="navigationLink">
    <div class="custom-component-wrapper">
        <cms:component component="${navigationLink.item}"/>
    </div>
</c:forEach>

自定义组件如下所示:

<a href="${component.url}">
    <div>${component.linkText}</div>
</a>

我想了解我需要做什么才能将 class navigation-link 作为参数传递,如下所示:

<cms:component component="${navigationLink.item}" class="navigation-link"/>

这样渲染的结果将类似于:

<a href="whosebug.com" class="navigation-link">
    <div>Lorem Ipsum</div>
</a>

cms:component 中没有调用 class 的属性,因此以下语句将不起作用:

<cms:component component="${navigationLink.item}" class="navigation-link"/>

请检查https://help.sap.com/doc/a4265d5ea8314eb2929e6cf6fb8e35a5/1811/en-US/de/hybris/platform/cms2lib/cmstags/CMSComponentTag.html

为了更好的理解,可以和c:forEach对比一下。在 https://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/c/forEach.html, you will find a list of attributes available with c:forEach and if you want to dig deeper, you can further check https://tomcat.apache.org/taglibs/standard/apidocs/javax/servlet/jsp/jstl/core/LoopTagSupport.html

如果您想使用您的声明,您将需要创建一个自定义标签。