本博客是本身在學習和工做途中的積累與總結,僅供本身參考,也歡迎你們轉載,轉載時請註明出處。前端
工做中出現一個比較特殊的問題,在模板ftl文件中,通常用list迭代map學習
舉例: spa
後臺:排序
// 傳入的參數博客
Map<Map<String,Object>> itemMap = new LinkedHashMap<Map<String,Object>>();it
....... // put數據進入itemMap中模板
print: {2:{name:"king"},1:{name:"arise"}}後臺
前端模板文件:List
<#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