笔记 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
笔记 freemark list标签迭代Map<Map<String,Object>集合排序问题的更多相关文章
- List<Map<String, Object>>集合中获取某个key并转换为List<Integer>集合
package com.codyy.sso.controller.yuanqu; import java.util.ArrayList; import java.util.HashMap; impor ...
- list中依据map<String,Object>的某个值排序
private void sort(List<Map<String, Object>> list) { Collections.sort(list, new Comparato ...
- 对List<Map<String, Object>>集合排序
private void mySort(List<Map<String, Object>> list) { //list为待排序的集合,按SEQ字段排序 Comparator& ...
- 分页查询和分页缓存查询,List<Map<String, Object>>遍历和Map遍历
分页查询 String sql = "返回所有符合条件记录的待分页SQL语句"; int start = (page - 1) * limit + 1; int end = pag ...
- java List<Map<String,Object>遍历的方法
public static void main(String[] args) { List<HashMap<String, Object>> list = new ArrayL ...
- java List<Map<String,Object>
xml <select id="selectShopList" resultType="java.util.HashMap"> SELECT p.P ...
- JavaBean与Map<String,Object>相互转换
一.为什么要实现javaBean与Map<String,Object>相互转换 Spring中的BaseCommandController对象可以将传递过来的参数封装到一个JavaBean ...
- 用于把List<Object>转换成Map<String,Object>形式
/** * 用于把List<Object>转换成Map<String,Object>形式,便于存入缓存 * @author zhang_bo * @param keyName ...
- String 转 List<Map<String, Object>>
public static List<Map<String, Object>> toListMap(String json){ List<Object> list ...
随机推荐
- CS190.1x-ML_lab3_linear_reg_student
这次作业主要是有关监督学习,数据集是来自UCI Machine Learning Repository的Million Song Dataset.我们的目的是训练一个线性回归的模型来预测一首歌的发行年 ...
- ConceptVector: Text Visual Analytics via Interactive Lexicon Building using Word Embedding
论文简介 本文是对词嵌入的一种应用,用户可以根据自己的需要创建concept,系统根据用户提供的seed word推荐其他词汇,以帮助用户更高的构建自己的concept.同时用户可以利用自己创建的 ...
- Muduo学习笔记(一) 什么都不做的EventLoop
Muduo学习笔记(一) 什么都不做的EventLoop EventLoop EventLoop的基本接口包括构造.析构.loop(). One Loop Per Thread 一个线程只有一个Eve ...
- java锁经典示例——卖车票场景
场景:20张车票 3个窗口同时售票 1.不加锁 package com.yao.lock; /** * 不加锁的情况 */ public class Runnable_demo implements ...
- Scrum立会报告+燃尽图(十二月十一日总第四十二次):贡献分配和收集用户报告
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2484 项目地址:https://git.coding.net/zhang ...
- 《Linux内核分析》第二周笔记 操作系统是如何工作的
操作系统是如何工作的 一.函数调用堆栈 1.三个法宝 计算机是如何工作的?(总结)——三个法宝(存储程序计算机.函数调用堆栈.中断机制) 1)存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: ...
- C语言版本:顺序表的实现
seqlist.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include<cstdio> #include<malloc.h> ...
- PAT 甲级 1090 Highest Price in Supply Chain
https://pintia.cn/problem-sets/994805342720868352/problems/994805376476626944 A supply chain is a ne ...
- 设置macbook休眠模式
前言: macbook默认合上盖默认是进入混合休眠模式模式(mode 3),此时电脑还会供电.不想耗电的话关机的话当前的工作状态就丢失了. macbook实际上是可以进入休眠模式的,只是没开放出来,我 ...
- BZOJ2431 HAOI2009逆序对数列(动态规划)
对于排列计数问题一般把数按一个特定的顺序加入排列.这个题做法比较显然,考虑将数从小到大加入排列即可. #include<iostream> #include<cstdio> # ...