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

  工作中出现一个比较特殊的问题,在模板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

笔记 freemark list标签迭代Map<Map<String,Object>集合排序问题的更多相关文章

  1. List<Map<String, Object>>集合中获取某个key并转换为List<Integer>集合

    package com.codyy.sso.controller.yuanqu; import java.util.ArrayList; import java.util.HashMap; impor ...

  2. list中依据map&lt;String,Object&gt;的某个值排序

    private void sort(List<Map<String, Object>> list) { Collections.sort(list, new Comparato ...

  3. 对List<Map<String, Object>>集合排序

    private void mySort(List<Map<String, Object>> list) { //list为待排序的集合,按SEQ字段排序 Comparator& ...

  4. 分页查询和分页缓存查询,List<Map<String, Object>>遍历和Map遍历

    分页查询 String sql = "返回所有符合条件记录的待分页SQL语句"; int start = (page - 1) * limit + 1; int end = pag ...

  5. java List<Map<String,Object>遍历的方法

    public static void main(String[] args) { List<HashMap<String, Object>> list = new ArrayL ...

  6. java List<Map<String,Object>

    xml <select id="selectShopList" resultType="java.util.HashMap"> SELECT p.P ...

  7. JavaBean与Map<String,Object>相互转换

    一.为什么要实现javaBean与Map<String,Object>相互转换 Spring中的BaseCommandController对象可以将传递过来的参数封装到一个JavaBean ...

  8. 用于把List<Object>转换成Map<String,Object>形式

    /** * 用于把List<Object>转换成Map<String,Object>形式,便于存入缓存 * @author zhang_bo * @param keyName ...

  9. String 转 List<Map<String, Object>>

    public static List<Map<String, Object>> toListMap(String json){ List<Object> list ...

随机推荐

  1. [CF1059E]Split the Tree[贪心+树上倍增]

    题意 给定 \(n\) 个节点的树,点有点权 \(w\) ,划分成多条儿子到祖先的链,要求每条链点数不超过 \(L\) ,和不超过 \(S\),求最少划分成几条链. \(n\leq 10^5\) . ...

  2. IT高管和易筋经的故事

    老板是我非常敬重的前领导之一,他的一些管理风格,也影响了后来我对技术团队的管理. 理想企业 什么是程序员理想的IT企业?公司里面有良好的同事关系,合理的产品需求和开发进度,最好老板懂点编程,这样公司更 ...

  3. laraver框架学习------工厂模型填充测试数据

    在laravel中填充数据有几种方式.一种是Seeder,另一种是工厂模式进行的填充. 工厂模式可以实现大批量的填充数据,数据的量可以自定义.这也为后续的软件测试提供方便. 在laravel框架有da ...

  4. 红黑树插入与删除完整代码(dart语言实现)

    之前分析了红黑树的删除,这里附上红黑树的完整版代码,包括查找.插入.删除等.删除后修复实现了两种算法,均比之前的更为简洁.一种是我自己的实现,代码非常简洁,行数更少:一种是Linux.Java等源码版 ...

  5. 对MP4一些概念的理解

    首先,对视频一些基本概念的理解: I帧:i帧又称为内编码帧,是一种自带全部信息的独立帧,可独立解码,可理解为一张静态图片,视频序列中的第一个帧始终是i帧,因为它是关键帧. P帧:P帧又称为帧间预测编码 ...

  6. Win2008r2 由ESXi 转换到 HyperV的处理过程

    1. 大部分2008r2 采取了 windows loader的方式激活 这种方式 会导致hyperV 启动失败 因为他家在了错误的bios类型 所以第一步建议 使用windows loader 卸载 ...

  7. 淘宝卖家搜索器V1.6算法注册机。

    该软件的算法非常简单,适合小白练手.(E语言写的)1.OD加载该软件,输入bp MessageBoxA 2.点击注册 3.OD就会中断下来了 4.按ALT+K打开调用堆栈 5.往上翻,就来到算法处了 ...

  8. 【设计模式】—— 命令模式Commond

    前言:[模式总览]——————————by xingoo 模式意图 将一个请求封装成一个对象,从而对这个命令执行撤销.重做等操作. 典型的Eclipse开发中,编辑器的操作就需要用到这个模式,比如Un ...

  9. BZOJ2744 HEOI2012朋友圈(二分图匹配)

    先考虑B国.容易发现a xor b mod 2=0即二进制末位相同,那么可以据此将所有人分成两部分,每一部分各自是一个完全图.然后再将a or b有奇数个1的边连上,现在需要求的就是这样一个图里的最大 ...

  10. gym101350 c h m

    C. Cheap Kangaroo time limit per test 1.0 s memory limit per test 256 MB input standard input output ...