需求:遍历一个List,按照key值统计每个key值有多少个,将结果放到map中
由于freemarker不支持对map的直接操作,所以需要将对map的直接操作转化为重新构建新的map
<!-- 初始化map -->
<#assign creditDic = {}>
<!-- 遍历list -->
<#list report.creditTipss as item>
<!-- 如果节点的mainType不为空且map中该键值对的值大于0,则对应加一,其他不变 -->
<#if item.mainType && ((creditDic[item.mainType]!) > 0)>
<#assign tempDic = {}>
<#list creditDic?keys as keyItem>
<#if item.mainType == keyItem>
<!-- 对应加一 -->
<#assign tempDic = tempDic + {item.mainType:(creditDic[item.mainType])+1}>
<#else>
<!-- 其他不变 -->
<#assign tempDic = tempDic + {keyItem:(creditDic[keyItem])}>
</#if>
</#list>
<!-- 需要将结果赋值给原来的map -->
<#assign creditDic = {} + tempDic>
<#else>
<!-- 初始化对应键值为1 -->
<#assign creditDic = creditDic + {item.mainType:1}>
</#if>
</#list>