我是Magnolia CMS的新手,现在在jsp上遍历ContentMap时遇到一些问题


我希望页面分别显示link和linkText。像forEach这样的JSTL标签在这种情况下不起作用,例如我输入

<c:forEach items="${content.events}" var="item">
  <a href="${item.link}" target="_blank">${item.linkText}</a>
</c:forEach>


因此,我的问题是在Magnolia中迭代contentMap的正确方法是什么?

最佳答案

ContentMap是显示为Map的节点属性。您要迭代的是子节点,因此它不起作用。
查看您的结构,它看起来像一个链接列表区域,如果这样的话,在呈现区域的组件中以及区域本身中,<cms:area name="events" />应该足够了:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="cms" uri="http://magnolia-cms.com/taglib/templating-components/cms"%>
<div id="${def.parameters.divId}">
  <c:forEach items="${components}" var="component">
    <cms:component content="${component}" />
  </c:forEach>
</div>


其中components应该隐式暴露在该区域中。尝试从git / nexus获取magnolia-templating-samples模块,以获取更多类似示例。

HTH,
一月

关于java - 如何在 Jade 兰中的JSP中遍历ContentMap,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23651636/

10-10 14:07