项目要用到一个方法大概是在freemarker中判断一个类型为Map<String, Map<String, Integer>>的集合中是否包含某个键值。
之前一直在freemarker中查找是否有类似于containsKey的函数,未果,得知有seq_contanis函数,但是它多用于在数组和序列中判断,而非字典
后来在谷歌得知??符号就可以来判断是否存在
后经过整理写的代码如图所示:
<tbody id="dataBody"> <#--循环Map--> <#if map??> <#list map?keys as key> <tr> <th>${key!}</th> <#--循环日期数组--> <#if date??> <#list date as item> <#--如果Map的key包含日期--> <#if map[key][item?string("yyyy-MM-dd")]??> <td>${map[key][item?string("yyyy-MM-dd")]!}</td> <#else> <td>0</td> </#if> </#list> </#if> </tr> </#list> </#if> </tbody>