8

我有一个基本的 java 使用类对象,它扩展了 WCMUSE 和一个简单的 hashmap 方法——在代码中——我有类似的东西

${项目}

${item.key}

${item.value}

不起作用 - 我如何在代码中返回键/值对

4

2 回答 2

13

在Sightly Intro Part 3中有一个示例,并且在AEM Docs Sightly Page中记录了 ${item} 和 ${itemList} 作为变量的使用。此页面还提供了以下用于访问动态值的示例:

<dl data-sly-list.child="${myObj}">
<dt>key: ${child}</dt>
<dd>value: ${myObj[child]}</dd>
</dl>

这是一个简单的 HashMap 示例。

带有 Sightly 的 HTML:

<div data-sly-use.myClass="com.test.WcmUseSample" data-sly-unwrap>
    <ul data-sly-list.keyName="${myClass.getMyHashMap}">
        <li>KEY: ${keyName}, VALUE: ${myClass.getMyHashMap[keyName]}</li>
    </ul>
</div>

爪哇:

package com.test;

import java.util.HashMap;
import java.util.Map;
import com.adobe.cq.sightly.WCMUse;

public class WcmUseSample extends WCMUse {
private Map<String, String> myHashMap;

    public void activate() throws Exception {
        myHashMap = new HashMap<String, String>();
        for (int i = 0; i < 10; ++i) { 
            myHashMap.put(""+i, "Hello "+i);
        }
    }
    public Map<String,String> getMyHashMap() {
        return myHashMap;
    }
}
于 2014-10-01T18:59:08.360 回答
0

您还可以尝试以下(AEM 6.4):

注意data-sly-test.hashMap空检查。

<div data-sly-use.pageController="com.corp.wcms.core.pages.anypage.PageController"

  <div data-sly-test.hashMap="${pageController.myHashMap}" data-sly-unwrap>
     <ul data-sly-list.keyName="${hashMap}">
       <li>KEY: ${keyName}, VALUE: ${hashMap[keyName]}</li>
     </ul>
  </div>

</div>
于 2018-12-03T12:57:08.880 回答