Ich möchte alle Variablen im Freemarker-Datenmodell sehen, genau wie struts2 debug
Tag, um Wertstapel anzuzeigen.unterstützt die Freimarker-Unterstützung alle Variablen im Datenmodell?
Gibt es eine Möglichkeit für Freimarker, dies zu tun?
Ich möchte alle Variablen im Freemarker-Datenmodell sehen, genau wie struts2 debug
Tag, um Wertstapel anzuzeigen.unterstützt die Freimarker-Unterstützung alle Variablen im Datenmodell?
Gibt es eine Möglichkeit für Freimarker, dies zu tun?
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.
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? –
Ja. Nicht erweiterbare Hashes können ihre eigenen Schlüssel oder Werte nicht aufzählen. – ddekany