Voglio vedere tutte le variabili nel modello di dati freemarker, proprio come il tag struts2 debug
per mostrare lo stack di valori.supporta i freemarker mostra tutte le variabili nel modello di dati?
C'è un modo per freemarker per fare questo?
Voglio vedere tutte le variabili nel modello di dati freemarker, proprio come il tag struts2 debug
per mostrare lo stack di valori.supporta i freemarker mostra tutte le variabili nel modello di dati?
C'è un modo per freemarker per fare questo?
Non c'è soluzione universale possibile per questo, ma si può provare
<#list .data_model?keys as key>
${key}
</#list>
Questo funziona se il modello di dati è solo una consueta Map
o JavaBean, ma per più sofisticati modelli di dati tocca ai dati -model implementazione se supporta ?keys
e se restituisce effettivamente tutto.
si hanno anche le variabili che si imposta nei modelli, che possono essere elencati come sopra, solo che invece di .data_model
uso .globals
, .namespace
(il che significa che lo spazio dei nomi modello corrente) e .locals
.
Si può anche avere Configuration
variabili -Level condiviso, e non c'è modo di elencare quelle puramente da FTL (si potrebbe scrivere un personalizzato TemplateMethodModel
per esso che legge Configuration.getSharedVariableNames()
però, e chiamarlo dal modello).
Ovviamente, FreeMarker dovrebbe avere una direttiva <#show_variables>
o qualcosa del genere, che faccia il massimo sforzo per mostrare tutto questo ... ma purtroppo non esiste ancora nulla del genere.
Ho ottenuto un errore "Previsto hash esteso, ma questo è stato valutato come hash". Significa che l'hash '.data_model' non supporta l'operatore di hash delle chiavi? –
Sì. Gli hash non estesi non possono enumerare le proprie chiavi o valori. – ddekany