hybris:如何将类作为参数传递给cms:component?

2ic8powd  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(442)

我已经开始学习hybris,我想知道如何将类作为参数传递给定制的cms组件(对于组件的根元素)。
假设在一个名为 customNavigationComponent.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>

我想知道我需要做什么才能通过这门课 navigation-link 作为参数,如下所示:

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

使渲染结果类似于:

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

1hdlvixo1#

没有所谓的属性, classcms:component 因此,以下声明将不起作用:

<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,您将找到可用的属性列表 c:forEach 如果你想挖得更深,你可以进一步检查https://tomcat.apache.org/taglibs/standard/apidocs/javax/servlet/jsp/jstl/core/looptagsupport.html
如果要使用语句,则需要创建一个自定义标记。

相关问题