freemarker遍历HashMap(obj,List(obj))

官方文档中的遍历map方式不能遍历key为non-string类型的map。
So TM Fuck egg!!JavaEye已经有人抱怨过了~!


错误的遍历
原本天真的以为这么写就行了,但是发现navData[key]并不能取到List<>,因为${item?size}在页面中输出的值为0

<#if navData?exists>
    <#list navData?keys as key>
        <#assign item = navData[key]!>
        ${item?size} //==>输出:0
        key:${key.cate_name}
        <#list item as itemValue>
            ${itemValue.title}
        </#list>
    </#list>
</#if>

正确的遍历
步骤一:

<!--更改spring-mvc中freemarkder配置-->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="/WEB-INF/view/"/>
        <property name="freemarkerSettings">
            <props>
                <!--FBI WARNING!!! 加入这个-->
                <prop key="object_wrapper">freemarker.ext.beans.BeansWrapper</prop>
            </props>
    </property>
</bean>

步骤二:

<#if navData?exists>
   <#list navData.keySet() as key>
       <#assign item = navData.get(key)>
       keyObj:${key.cate_name}
       <#list item as itemValue>
           valueObjInList:${itemValue.title}
       </#list>
   </#list>
</#if>

猜你喜欢

转载自blog.csdn.net/weixin_42795831/article/details/81866546