2010-06-29 15 views
8

Eventuali duplicati:
Freemarker iterating over hashmap keysiterazione di mappa in Freemarker

ho avere una mappa hash che contengono ID elemento come una chiave e Voce oggetti come un valore. Di seguito è riportato il codice pseudo -

allItems : { 
    12: itemObj1 (id:12, name:myitem1) 
    13: itemObj2 (id:13, name:myitem2) 
    14: itemObj3 (id:14, name:myitem3) 
} 

Su result.ftl ho bisogno di iterare su questa mappa e ottenere i valori di Object Item. Ho provato questo approccio, ma non sono riuscito a ottenere i valori da oggetto Item -

<#list item?keys as it> 
    ${it} = ${item.get(it)[name]} 
</#list> 

risposta

9

Penso che si desidera:

<#list allItems?keys as it> 
    ${it} = ${allItems[it].name} 
</#list> 
+0

Questa è esattamente la risposta che cercavo. Grazie per la condivisione! – Cristian

+3

Funziona solo se la chiave è una stringa, non se è una classe –

+1

Dalla 2.3.25 è possibile utilizzare '<#list allItems come chiave, elemento> $ {chiave} = $ {voce [nome]}'. Funziona anche con chiavi non '' Stringa'. – ddekany

1
<#assign seq=["a","b","c"]> 
<#list seq as l> 
    ${l[1]} 
// It will print b 
    ${l[0]} 
//It will print a 
</#list>