我需要在FreeMarker中遍历以下数据结构
final Map<String,Map<String,List<Person>>> root = fillMap();
为了简化,想象一下这是一种分类学,我有“大陆”,“国家”,“人”,人在哪里
class Person{
String name;
String id;
}
如果您想要更多说明:
您可以在Java中执行以下操作(专注于var名称)
Map<String,List<Person>> countriesForContinent = root.get(“Africa”);
List<Person> personsForCountry = countriesForContinent.get(“Kenya”);
在FreeMarker中,我需要能够列出地图中的每个大陆;然后是每个大洲,每个国家;然后是每个国家,每个人。
我的HTML基本上是一些标签(每个大陆一个),在每个标签上,我有国家/地区部分,在每个部分中我列出了属于该国家/地区的人。
困难
我对列表标签内的内容有困难。我知道例如root as continent
没有意义;但我不知道如何解决它。
<#list root as continent >
${continent}
<#list continent as country >
${country}
<#list country as person >
${person.name} ${person.id}
</#>
</#>
</#>
答案 0 :(得分:0)
在FreeMarker模板中,您无法列出Map
- s,只能列出其键(或其值)。所以你会有这样的事情:
<#list root?keys as continentName>
${continentName}
<#list root[continentName] as country >
...
</#list>
</#list>