2013-09-26 7 views

risposta

13

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.

+0

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? –

+0

Sì. Gli hash non estesi non possono enumerare le proprie chiavi o valori. – ddekany

Problemi correlati