Java 如何在Freemarker中迭代地图中的嵌套集合?

Java 如何在Freemarker中迭代地图中的嵌套集合?,java,freemarker,Java,Freemarker,我想迭代Freemarker 2.3.15中地图中的嵌套集合 我将以下内容传递给视图: Map<ApplicationPropertyDefinition, Collection<ApplicationProperty>> = getValues(); 如何正确迭代嵌套集合,以便访问每个ApplicationProperty对象中的字符串值“name”?您可以尝试添加一个方法,该方法将ApplicationPropertyDefinition作为参数,并返回为该参数找到

我想迭代Freemarker 2.3.15中地图中的嵌套集合

我将以下内容传递给视图:

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>