将两个 freemarker 散列与 table 中的相同键结合起来

Combine two freemarker hash with same key inside table

我的两个hash/maps如下。我想从第一张地图和第二张地图中获取key对应的值,然后将它们添加到table

地图1 [ { “关键”:“1”, “价值”:“土豆” }, { “关键”:“2”, “价值”:“寒冷” } ]

地图2 [ { “关键”:“1”, “价值”:“苹果” }, { “关键”:“2”, “价值”:“李子” } ]

我想要时尚的数据,这样我就可以同时从两个地图中获取相同键的数据

<#list map1+map2?keys as key>
<tr>
    <td>${key}</td>
    <td >${map1[key]}</td>
    <td >${map2[key]}</td>
</tr>
</#list>

我知道我做错了什么,但无法处理代码。有人可以帮忙吗?

为了能够使用 built-in ?keys,您需要将地图连接括起来,所以 (map1 + map2)?keys。此外,如果映射不相等,您可能希望通过在表达式后缀 !"default value" 来检查空值,或者如果您不想使用默认值,则只需 ! 即可:

<#assign map1 = { "1": "Potato", "2": "Chilly" } >
<#assign map2 = { "1": "Apple", "2": "Plum", "3": "Extra" } >
<#list (map1 + map2)?keys as key>
<tr>
    <td>${key}</td>
    <td>${map1[key]!}</td>
    <td>${map2[key]!}</td>
</tr>
</#list>

另请参阅:

  • Freemarker - default value for variable that may be missing or blank?