Tuesday, January 4, 2011

Iterating over Map in Freemarker

Imagine you have a Map of car dealers and vehicles:

Map<String, List<Vehicle>> vehiclesByDealer = new TreeMap<String, List<Vehicle>>();


Turns out it can be tricky to iterate over such a Map in Freemarker. As a workaround, add the keySet to the Model as a separate String list:

mv.addObject("vehiclesByDealerName", vehiclesByDealer);
mv.addObject("dealerNames", vehiclesByDealer.keySet());


Then iterate like this:

<#list dealerNames as dealerName>
<#assign vehicles = vehiclesByDealerName[dealerName] />
...
</#list>

0 comments:

Stats