freemarker(ftl文件)中判断Map<String, Map<String, Integer>>类型中是否包含某个键值(key)

项目要用到一个方法大概是在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>

 

 




posted on 2018-03-15 18:07  seveth  阅读(4654)  评论(0编辑  收藏  举报

导航