Java 如何在Freemarker中迭代地图中的嵌套集合?
我想迭代Freemarker 2.3.15中地图中的嵌套集合 我将以下内容传递给视图:Java 如何在Freemarker中迭代地图中的嵌套集合?,java,freemarker,Java,Freemarker,我想迭代Freemarker 2.3.15中地图中的嵌套集合 我将以下内容传递给视图: Map<ApplicationPropertyDefinition, Collection<ApplicationProperty>> = getValues(); 如何正确迭代嵌套集合,以便访问每个ApplicationProperty对象中的字符串值“name”?您可以尝试添加一个方法,该方法将ApplicationPropertyDefinition作为参数,并返回为该参数找到
Map<ApplicationPropertyDefinition, Collection<ApplicationProperty>> = getValues();
如何正确迭代嵌套集合,以便访问每个ApplicationProperty对象中的字符串值“name”?您可以尝试添加一个方法,该方法将
ApplicationPropertyDefinition
作为参数,并返回为该参数找到的集合
public Collection<ApplicationProperty> getPropertiesForDefinition(ApplicationPropertyDefinition definition) {
return propertiesByDefinition.get(definition)
}
公共集合getPropertiesForDefinition(ApplicationPropertyDefinition定义){
返回propertiesByDefinition.get(定义)
}
这将导致:
<#list propertiesByDefinition?keys as definition>
<strong>${definition.externalReference!''}</strong>
<#list getPropertiesByDefinition(definition) as value>
${value.name}
</#list>
</#list>
${definition.externalReference!'}
${value.name}
您必须为给定的定义检索集合
对象
试试这个:
<#if propertiesByDefinition?size gt 0>
<#list propertiesByDefinition?keys as definition >
<strong>${definition.externalReference!''}</strong>
<#list propertiesByDefinition.get(definition) as value>
${value.name}
</#list>
</#list>
</#if>
<#list propertiesByDefinition?keys as definition>
<strong>${definition.externalReference!''}</strong>
<#list getPropertiesByDefinition(definition) as value>
${value.name}
</#list>
</#list>
<#if propertiesByDefinition?size gt 0>
<#list propertiesByDefinition?keys as definition >
<strong>${definition.externalReference!''}</strong>
<#list propertiesByDefinition.get(definition) as value>
${value.name}
</#list>
</#list>
</#if>
<#if propertiesByDefinition?has_content >
<#list propertiesByDefinition as definition, collection >
<strong>${definition.externalReference!''}</strong>
<#list collection as value >
${value.name}
</#list>
</#list>
</#if>
<#list map as key, value>
${key} : ${value}
</#list>