本文将介绍如何使用Freemarker遍历non-String型key的map,即遍历key值不是String的map集合。
1.注入bean
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/freemaker/" />
<property name="defaultEncoding" value="UTF-8" />
<property name="freemarkerSettings">
<props>
<prop key="tag_syntax">square_bracket</prop>
<prop key="template_update_delay">10</prop>
<prop key="url_escaping_charset">UTF-8</prop>
<prop key="default_encoding">UTF-8</prop>
<prop key="output_encoding">UTF-8</prop>
<prop key="locale">zh_CN</prop>
<prop key="boolean_format">true,false</prop>
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="time_format">HH:mm:ss</prop>
<prop key="number_format">0.##</prop>
<prop key="incompatible_improvements">2.3.23</prop>
<prop key="whitespace_stripping">true</prop>
<prop key="object_wrapper">freemarker.ext.beans.BeansWrapper</prop>
</props>
</property>
</bean>
核心参数项:
<prop key="object_wrapper">freemarker.ext.beans.BeansWrapper</prop>
2. 使用方式
如现在需要遍历一个集合:Map<bean,List<bean>> testMap
<#list testMap.keySet() as testKey>
<#list testMap.get(testKey) as item>
${item.成员属性}
</#list>
</#list>
逻辑:
先迭代map的key,再通过key获取对应的集合进行迭代。