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

  工作中出现一个比较特殊的问题,在模板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. 大白话说Java泛型:入门、使用、原理

    文章首发于[博客园-陈树义],点击跳转到原文<大白话说Java泛型:入门.使用.原理> 远在 JDK 1.4 版本的时候,那时候是没有泛型的概念的.当时 Java 程序员们写集合类的代码都 ...

  2. Maven构建项目速度太慢的解决办法

    问题描述 通过idea新建maven项目,参数设置好后,idea自动构建maven项目时,速度很慢. 参数设置如图: 执行时间如下图: Total time为8:49,花了将近十分钟时间. 连续尝试了 ...

  3. wireshark找不到网卡

    在Capture Opinions中的interface若找不到网卡,一般是npf服务没有启动. npf是什么东东 Netgroup Packet Filter 网络数据包过滤器 NPF Device ...

  4. Docker 部署学习

    https://yeasy.gitbooks.io/docker_practice/basic_concept/repository.html https://hujb2000.gitbooks.io ...

  5. SpringBoot日记——MQ消息队列整合(一)

    除了之前讲到的缓存,我们还会用到消息队列来存储一些消息,为了提升系统的异步性能等等: 消息服务有两个概念需要知道:消息代理-message broker,目的地-destination.消息发送由代理 ...

  6. 用 C 语言描述几种排序算法

    排序算法是最基本且重要的一类算法,本文基于 VS2017,使用 C 语言来实现一些基本的排序算法. 一.选择排序 选择排序,先找到数组中最小的元素,然后将这个元素与数组的第一个元素位置互换(如果第一个 ...

  7. 小学生都能写智能语音助手了,我这颗转战AI的心要何去何从?

    前言——我是不是老了 前天看了一个关于AI类的综艺节目我感觉整个人都不好了.这个综艺的名字叫<智造将来>上面那个小屁孩自己写了一个智能语音助手,这个小屁孩叫袁翊闳是2018年百度AI开发者 ...

  8. 微软职位内部推荐-Sr. SW Engineer for Privacy Id

    微软近期Open的职位: Job posting title: Senior Software Engineer for Privacy Identification Profession: Engi ...

  9. springboot 异步调用Async使用方法

    引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3. ...

  10. wpf-典型的mvvm模式通用中小型管理系统框架0

    之前就一直在想着写这么一系列博客,将前段时间(也算有点久了)自己编写的一套框架分享下,和园子里的诸位大牛交流交流,奈何文思枯竭,提键盘而无从敲起,看来只有coding时才不会有这种裤子都脱了,才发现对 ...