笔记 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
- List<Map<String,Object>>集合根据map里面的一个字段排序
- List<Map<String,Object>>集合根据map里面的一个字段排序
- 对List<Map<String, Object>>集合排序
- List<Map<String,Object>>集合根据map里面的一个字段排序
- List<Map<String, Object>> 中文字段排序
- JAVA对LIST<Map<String,Object>>的排序
- jsp标签中遍历List<Map<String, List<Object>>>类型的数据
- 迭代输出Map和List<Map<String,Object>>的方法
- list中依据map<String,Object>的某个值排序
- 对List<Map<String,Object>>进行排序
- c标签遍历List<Map<String, Object>> 数据格式
- Mongo的morphia读取Map<String, List<Object>>类型数据的问题
- List<Map<String, Object>> resultList按某些字段排序
- 将Map<String, List<Map<String,Object>>>进行排序
- java list<Map<String,Object>>排序
- List<Map<String, Object>> 不同key值进行排序备忘
- List<Map<String, Object>>对其中的map按规则排序
- 自定义规则,对List<Map<String,Object>> List<Object>进行排序
- 7 Lucene笔记(七):第三方工具,将javabean、list、Map<String,object>转成json文本
- List<Map<String,Object>>去重,排序