Aem 如何从java use类hashmap中获取密钥/值

Aem 如何从java use类hashmap中获取密钥/值,aem,sightly,Aem,Sightly,我有一个扩展WCMUSE的基本java use类对象和一个简单的hashmap方法(在代码中),我有 ${item} ${item.key} ${item.value} 不起作用-如何在sightly代码中返回键/值对中有一个示例,并且${item}和${itemList}作为变量的使用记录在上。本页还提供了访问动态值的以下示例: <dl data-sly-list.child="${myObj}"> <dt>key: ${child}</dt> <dd

我有一个扩展WCMUSE的基本java use类对象和一个简单的hashmap方法(在代码中),我有

${item}

${item.key}

${item.value}

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

中有一个示例,并且${item}和${itemList}作为变量的使用记录在上。本页还提供了访问动态值的以下示例:

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

键:${child}
值:${myObj[child]}
下面是一个简单的HashMap示例

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>

  • 键:${keyName},值:${myClass.getMyHashMap[keyName]}
爪哇:

package.com.test;
导入java.util.HashMap;
导入java.util.Map;
导入com.adobe.cq.sightly.WCMUse;
公共类WcmUseSample扩展了WCMUse{
私有映射myHashMap;
public void activate()引发异常{
myHashMap=新HashMap();
对于(int i=0;i<10;++i){
myHashMap.put(“+i,”Hello“+i);
}
}
公共映射getMyHashMap(){
返回myHashMap;
}
}

您也可以尝试以下方法(AEM 6.4):

注意emptycheck的
数据测试.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>

data-sly-use.myClass周围的div不是必需的。应尽可能避免创建通过数据展开再次移除的元素,以使模板标记尽可能接近生成的标记。因此,data-sly-use.myClass应该放在UL元素上。@JohnKepler这可能只适用于没有字符串键的HashMaps吗?(例如,
Map
触发器
SlingException:无效的属性名称
<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>