zoukankan      html  css  js  c++  java
  • 笔记 freemark list标签迭代Map<Map<String,Object>集合排序问题

    本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处。

      工作中出现一个比较特殊的问题,在模板ftl文件中,一般用list迭代map

    举例:  

      后台:

        // 传入的参数

        Map<Map<String,Object>> itemMap = new LinkedHashMap<Map<String,Object>>();

        .......  // put数据进入itemMap中

        print: {2:{name:"king"},1:{name:"arise"}}

      前端模板文件:

      <#list itemMap?keys as key>

         key: ${key}---- value: ${itemMap[key].name} <br />

      </#list>

      展示效果为:

      key: 1 ----- value: arise

      key: 2 ----- value: king

      这里就有问题了,后台传过来的是一个链表结构的map,应该以存入的顺序进行展示才对.

      原因:

        <#list itemMap?keys as key> 中,list标记户对所有的key进行一个默认的排序,所以顺序与后台传过来的不一样

      解决办法目前有两种(以后发现了再添加上来):

      (1). [推荐] 后台传过来的LinkedHashMap换成LinkedList,存储键值对的方式也要变,如果需要在页面展示key的话,并且前端展示用一下代码

        后台:

             List<Map<String,Object>> itemList= new LinkedList<Map<String,Object>>();

          .......  // put数据进入itemMap中

          print: [{key:2,name:"king"},{key:1,name:"arise"}]

        前端模板文件:

        <#list itemList as item>

          key: ${item.key}---- value: ${item.name} <br />

        </#list>

        展示效果为:

        key: 1 ----- value: arise

        key: 2 ----- value: king

      (2). 后台传一个itemMap以及一个itemMap的所有键组成的list到ftl文件中,然后页面遍历由键组成的list,并在通过键得到itemMap中的value

  • 相关阅读:
    Java 开源博客 Solo 2.5.0 发布
    redis集群部署及踩过的坑
    开源巨献:年度最佳 JavaScript 和 CSS 开源库推荐!
    Java9 新特性 详解
    eclipse 安装教程
    博客园代码高亮插件(类似csdn的代码插入)
    【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结
    软件测试学习视频 分享
    Oracle imp exp 导入导出 执行脚本
    在Ubuntu 15下搭建V/P/N服务器pptpd安装和配置
  • 原文地址:https://www.cnblogs.com/king-xg/p/7053908.html
Copyright © 2011-2022 走看看