2010-06-29 19 views
8

में नक्शे पर बार-बार दोहराना संभव डुप्लिकेट:
Freemarker iterating over hashmap keysFreemarker

मैं एक हैश मानचित्र जो एक मूल्य के रूप में एक महत्वपूर्ण और आइटम वस्तुओं के रूप में आइटम आईडी को शामिल किया है। पीछा कर रहा है छद्म कोड -

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

result.ftl पर मैं इस नक्शे पर पुनरावृति और मद वस्तु के मूल्यों को प्राप्त करने की आवश्यकता है। मैं इस दृष्टिकोण की कोशिश की है लेकिन मद वस्तु से मूल्यों को नहीं मिल सका -

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

उत्तर

9

मुझे लगता है कि आप चाहते हैं:

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

यही जवाब मैं खोज रहा था है। साझा करने के लिए धन्यवाद! – Cristian

+3

केवल तभी काम करता है जब कुंजी एक स्ट्रिंग है, न कि यदि यह कक्षा –

+1

है 2.3.25 के बाद से आप '<#list allItems कुंजी, आइटम> $ {key} = $ {item [name]} 'का उपयोग कर सकते हैं। यह गैर-'स्ट्रिंग' कुंजी के साथ भी काम करता है। – ddekany

1
<#assign seq=["a","b","c"]> 
<#list seq as l> 
    ${l[1]} 
// It will print b 
    ${l[0]} 
//It will print a 
</#list> 
संबंधित मुद्दे