Dalla 2.3.25, fallo in questo modo:
<#list user as propName, propValue>
${propName} = ${propValue}
</#list>
Nota che funziona anche con chiavi non stringa (a differenza di map[key]
, che dovevano essere scritte come map?api.get(key)
allora).
Prima della 2.3.25 la soluzione standard era:
<#list user?keys as prop>
${prop} = ${user[prop]}
</#list>
Tuttavia, alcune integrazioni FreeMarker molto vecchie utilizzano una configurazione strana, in cui i Map
metodi pubblici (come getClass
) appaiono come chiavi. Ciò accade mentre usano un puro BeansWrapper
(invece di DefaultObjectWrapper
) la cui simpleMapWrapper
proprietà è stata lasciata attiva false
. Dovresti evitare una tale configurazione, poiché mescola i metodi con Map
voci reali . Ma se si esegue in tale infelice configurazione, il modo per sfuggire alla situazione sta usando i metodi Java esposti, come ad esempio user.entrySet()
, user.get(key)
e così via, e non utilizzando i costrutti del linguaggio modello simile ?keys
o user[key]
.