我是小胡子的新手,并且想知道如何使用小胡子HashMap
来迭代Map
Map mapA = new HashMap();
mapA.put("key1", "element 1");
mapA.put("key2", "element 2");
mapA.put("key3", "element 3");
地图键名称各不相同。理想情况下,我希望小胡子迭代它的键和值。所以在java中它看起来像这样:
for (Map.Entry<String, Object> entry : mapA.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
// ...
}
所以有人可以告诉我如何在小胡子上面实现。我的意思是模板怎么样?我试过这个模板但到目前为止没有运气:(
{{#mapA}}
<li>{{key}}</li>
<li>{{value}}</li>
{{/mapA>
因此,当我运行此模板时,输出<li>
标记为空,为什么?
谢谢。
答案 0 :(得分:10)
我不知道小胡子,但基于我见过的一些代码示例,我认为您应该在Java代码中定义一个entrySet
变量,如下所示
Set<Map.Entry<String,Object>> entrySet = mapA.entrySet();
并在小胡子代码
中使用它代替mapA
{{#entrySet}}
<li>{{key}}</li>
<li>{{value}}</li>
{{/entrySet}}
答案 1 :(得分:0)
正如上面提到的@Dici,您可以使用new SendButton("Send", "WhatIsYourName");
。您不必在工厂中使用任何特殊选项,并可以将其直接传递给entrySet
。如果模板非常简单,您可以在模板中使用顶级地图。
<强>爪哇强>
execute
小胡子模板(Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
Writer writer = new OutputStreamWriter(System.out);
MustacheFactory mustacheFactory = new DefaultMustacheFactory();
Mustache template = mustacheFactory.compile("map.template");
template.execute(writer, map.entrySet()).close();
)
map.template
<强>结果强>
{{#.}}
keylabel:{{key}} : valuelabel:{{value}}
{{/.}}