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>

  • 相关阅读:
    HDU 4763 Theme Section(KMP+枚举公共前后缀)
    HDU 3613 Best Reward(扩展KMP求前后缀回文串)
    HDU 3613 Best Reward(manacher求前、后缀回文串)
    扩展KMP模板
    Vue
    Vue
    css 文本换行 文本溢出隐藏用省略号表示剩下内容
    sublime 神一样的插件
    markdown
    css 居中布局
  • 原文地址:https://www.cnblogs.com/beiyeren/p/3873494.html
Copyright © 2011-2022 走看看