zoukankan      html  css  js  c++  java
  • Freemaker如何遍历key为non-string类型的map?

    (一) 前置知识

    Freemaker默认配置下会使用SimpleHash去包装后台传递的hashmap,下段摘抄自官方reference

     

    同样,当你传递进去一个hashmap实例时,会替换为一个simpleHash。替换原则是在ObjectWrapper的实现类中编码实现的。

    下边代码摘抄自默认的ObjectWrapper实现DefaultObjectWrapper

     

    (二) 导致的问题:

    使用官方文档中的遍历map方式不能遍历key为non-string类型的map。

    <#list keys as key>${key} = ${h[key]}; </#list>

    这个情况也被不断的吐槽。

     

    (三) 解决方案:

    1. 更改spring mvc 中的配置

    <bean id="freemarkerConfig"
              class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
            <property name="templateLoaderPath" value="/WEB-INF/view/"/>
            <property name="freemarkerSettings">
                <props>
                    <prop key="object_wrapper">freemarker.ext.beans.BeansWrapper</prop>
                </props>
            </property>
        </bean>

    2. 使用以下方式进行遍历

    <#list testMap.keySet() as testKey>

           < option value="${testKey}" >

            ${testMap.get(testKey)}

         </option>

    </#list>

  • 相关阅读:
    省选测试42
    省选测试41
    省选测试40
    省选测试39
    python海龟画图生成星星
    Python-列表简介
    Linux系统中设置默认的Java版本
    虚拟机无线网卡桥接失败
    pycharm设置启动图标
    禁用vscode硬件加速
  • 原文地址:https://www.cnblogs.com/beiyeren/p/3873494.html
Copyright © 2011-2022 走看看