FreeMarker遍历Map 遍历出一堆Map方法

FreeMarker遍历Map 遍历出一堆Map方法

遍历Map其实很简单

但是当我们在网络上去寻找这个答案的时候,很多答案是这样的

<#list categorylist?keys as key>
    <option value="${key}" selected="selected">${categorylist[key]}</option>	
</#list>

然而,很遗憾,这样的代码是不正确的

除非你再加上一个这样的条件判断

<#if key=="" || categorylist[key]=="" || 'class' == key>

否则最后列出的下拉框中有很多Map的方法为key的下拉框,如put get remove等

但是这样又有一个问题,这样判断空是不正确的

我们应该 key?? 这样判断空

这样判断空,又会出现问题,总之,从一开始我们就写错了

正确的FreeMarker遍历Map的方法应该是使用 map.entrySet,即如下代码

<#list categorylist.keySet() as key>
    <option value="${key}">${categorylist[key]}</option>									
</#list>


这样,我们就正确的在FreeMarker中遍历出了Map


至于使用下面的代码遍历,大概就是FreeMarker的一个BUG吧

<#list categorylist?keys as key>
    <option value="${key}" selected="selected">${categorylist[key]}</option>	
</#list>



爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img