2013-09-26 4 views

Antwort

13

Es gibt keine universelle Lösung möglich, dass, aber Sie können

<#list .data_model?keys as key> 
    ${key} 
</#list> 

Dies funktioniert versuchen, wenn die Daten-Modell nur ein übliches Map oder JavaBean ist, sondern auch für anspruchsvollere Datenmodelle ist es auf die Daten nach oben -Modell-Implementierung, wenn es ?keys unterstützt und wenn es tatsächlich alles zurückgibt.

Sie haben auch die Variablen, die Sie in den Vorlagen festgelegt, die wie oben aufgeführt werden können, nur statt .data_model Verwendung .globals, .namespace (die die aktuelle Vorlage Namespace bedeutet) und .locals.

Sie auch Configuration -Niveau gemeinsam genutzte Variablen haben kann, und es gibt keine Möglichkeit, diejenigen rein von FTL zur Liste (Sie können eine benutzerdefinierte TemplateMethodModel für sie schreiben, die Configuration.getSharedVariableNames() obwohl liest, und es aus der Vorlage nennen).

Natürlich sollte FreeMarker idealerweise eine <#show_variables> Direktive oder so etwas haben, die sich am besten bemüht, all dies zu zeigen ... aber leider gibt es so etwas noch nicht.

+0

Ich habe 'Erwartete einen erweiterten Hash, aber dies zu einem Hash-Fehler ausgewertet. Bedeutet dies, dass der '.data_model'-Hash den? Keys-Hash-Operator nicht unterstützt? –

+0

Ja. Nicht erweiterbare Hashes können ihre eigenen Schlüssel oder Werte nicht aufzählen. – ddekany

Verwandte Themen