Machen Sie es seit 2.3.25 folgendermaßen:
<#list user as propName, propValue>
${propName} = ${propValue}
</#list>
Beachten Sie, dass dies auch mit Schlüsseln ohne Zeichenfolge funktioniert (im Gegensatz zu den Schlüsseln map[key]
, die wie map?api.get(key)
damals geschrieben werden mussten ).
Vor 2.3.25 war die Standardlösung:
<#list user?keys as prop>
${prop} = ${user[prop]}
</#list>
Einige wirklich alte FreeMarker-Integrationen verwenden jedoch eine seltsame Konfiguration, bei der die öffentlichen Map
Methoden (wie getClass
) als Schlüssel angezeigt werden. Dies geschieht, wenn sie ein reines BeansWrapper
(anstelle von DefaultObjectWrapper
) verwenden, dessen simpleMapWrapper
Eigentum belassen wurde false
. Sie sollten ein solches Setup vermeiden, da es die Methoden mit echten Map
Einträgen mischt . Aber wenn Sie in einem solche unglücklichen Setup ausführen, die Möglichkeit , die Situation zu entkommen , wird mit den freiliegenden Java - Methoden, wie zum Beispiel user.entrySet()
, user.get(key)
usw. und nicht die Konstrukte Template - Sprache wie?keys
oder user[key]
.