2011-01-20 8 views
6

Estoy intentando volcar todas las variables disponibles para mis plantillas de freemarker. Estoy tratando de usar algo como:Volcar todos los valores en .vars en Freemarker

<#list .vars?keys as prop> 
${prop} = ${.vars.get(prop)} 

</#list>

leí en la documentación que .vars no soporta la funcionalidad de las teclas sin embargo yo estoy usando lo anterior para mostrar lo que estoy tratando que hacer.

Este es mi primer día con Freemarker, así que cualquier consejo sería genial.

+0

Tome un vistazo a [esta] (http://stackoverflow.com/a/19039195/355438) respuesta – Lu55

Respuesta

4

No creo que pueda enumerar todas las variables disponibles para la plantilla. Sé que can't los enumera en Java.

FreeMarker está muy bien documented. Vea la parte en special variables in FreeMarker.

Si te sirve de consuelo, se puede acceder a las variables locales,

<#assign someVar = 12> 
<#list .main?keys as var> 
    ${var} 
</#list> 

que emite

someVar 
+0

Gracias, Andy. Encontré Environment.getKnownVariableNames(), sin embargo, no sé si haré lo que quiero y no puedo entender cómo conseguir el medio ambiente :-P –

+0

Lo miré también, pero encontré que sí no funciona como esperaba que fuera. Una teoría que tenía, era que quizás Freemarker no tiene una lista de las variables en el data_model, porque en el tiempo de ejecución simplemente intenta reflexiones para recuperarlas de un método get. Sin embargo, no conozco el código de freemarker lo suficientemente bien como para verificar esto. – Andy

+0

Gracias Andy, me preguntaba cómo dar salida a los valores de tales claves que tienen los nombres. (punto) en él. Freemarker estaba tratando de evaluar el lado derecho de. como una propiedad de algún objeto. Pude lograr esto usando la variable especial .data_model. – jatanp

Cuestiones relacionadas