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 MapMethoden (wie getClass) als Schlüssel angezeigt werden. Dies geschieht, wenn sie ein reines BeansWrapper(anstelle von DefaultObjectWrapper) verwenden, dessen simpleMapWrapperEigentum belassen wurde false. Sie sollten ein solches Setup vermeiden, da es die Methoden mit echten MapEinträ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].