我是一个胡子新手,我想知道如何在这个地图上反复使用胡子
Map mapA = new HashMap();
mapA.put("key1", "element 1");
mapA.put("key2", "element 2");
mapA.put("key3", "element 3");
地图键名称各不相同。理想情况下,我希望mustache可以迭代其键和值。因此,在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>
所以当我运行这个模板时,输出
正如上面提到的@Dici,您可以使用入口集。您不必在工厂中使用任何特殊选项,可以将其直接传递给执行。如果模板非常简单,则可以在模板中使用顶级贴图。
Java语言
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}}
{{/.}}
后果
keylabel:key1 : valuelabel:value1
keylabel:key2 : valuelabel:value2
比这简单得多,只需这样做:
{{#mapA}}
{{#entrySet}}
<li>{{key}}</li>
<li>{{value}}</li>
{{/entrySet}}
{{/mapA}}
我不知道mustache,但根据我看到的一些代码示例,我认为应该在Java代码中定义一个entrySet变量,如下所示
Set<Map.Entry<String,Object>> entrySet = mapA.entrySet();
在你的胡子代码中使用它而不是mapA
{{#entrySet}}
<li>{{key}}</li>
<li>{{value}}</li>
{{/entrySet}}
我得到了同样的错误。这有可能吗?我真的更希望不执行stream.foreach()并传递一个消费者。 编辑:对我来说,不要复制元素是很重要的。
问题内容: 我对groovy的了解并没有超出我对Jenkinsfiles的了解。我试图弄清楚是否有可能在Jenkinsfile中定义一个映射,然后可以以“ for循环”方式应用该映射。 我有这些变量: 我的Jenkinsfile中有一个如下所示的: 有没有办法为每个配对做一个舞台?我的尝试还没有运气。 问题答案: Jenkins文档中有一些类似的用户提交的示例。 这样的事情应该起作用:
问题内容: 我正在尝试使用迭代器遍历我的日志列表中的列表。目标是搜索包含与新日志相同的电话号码,类型和日期的日志 但是,我在条件语句中得到了java.util.NoSuchElementException。有谁知道可能导致问题的原因? 我的密码 问题答案: 您在一次迭代中调用了很多次,迫使移至一个不存在的元素。 代替 用 每次调用时,它都会向前移动基础光标。
问题内容: 我有这样的地图 现在,我必须迭代此Map,然后迭代该地图内的ArrayList。如何使用JSTL做到这一点? 问题答案: 你可以使用标签来遍历数组,集合和映射。 如果是数组和集合,则每次迭代var都会立即为你提供当前迭代的项目。 对于地图,每次迭代var都会为你提供一个Map.Entry对象,该对象又具有getKey()和getValue()方法。 在你的特定情况下,实际上是a Lis
问题内容: 我有一个(实际上,我使用的是更复杂的POJO,但是为了我的问题而简化了它) 好像 : 我如何遍历此地图,打印出密钥,然后打印人名,然后打印人年龄,例如: A是Map < String ,Person> 的键 B是Person.getName()的名称 C是Person.getAge()的年龄 我可以使用.values()从地图中提取所有值,如HashMap文档中所述,但是我不确定如何获