【问题标题】:How to iterate over ContentMap in jsp in magnolia如何在玉兰的jsp中迭代ContentMap
【发布时间】:2014-05-14 10:09:42
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java jsp loops collections magnolia


    【解决方案1】:

    ContentMap 是作为 Map 公开的节点属性。您要迭代的是子节点,因此它无法工作。 查看您的结构,它看起来像一个链接列表区域,如果是这样的话,&lt;cms:area name="events" /&gt; 在渲染区域的组件和区域本身中应该足够了:

    <%@ 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-template-samples 模块以获取更多类似示例。

    HTH, 一月

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多