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>

  • 相关阅读:
    SQL注入实验-2021.01.24
    数据库的搭建与基本语句2021-01-24
    Linux
    磁盘配置
    在Vmware中Centos下的Hadoop环境搭建
    Linux系统(CentOS)-2021.1.19
    中间件,JavaScript,PHP及burpSuite暴力破解实验-2021.1.16
    html,css学习笔记-2021.1.15
    第一周学习视频(二)
    第一周学习视频(一)
  • 原文地址:https://www.cnblogs.com/beiyeren/p/3873494.html
Copyright © 2011-2022 走看看