En una plantilla NVelocity cómo se hace la prueba de la existencia de una propiedad
-
29-09-2019 - |
Pregunta
Estoy construyendo una plantilla simple NVelocity pero no puedo encontrar la manera de prueba de la existencia de una variable -. En este ejemplo quiero poner a prueba si el contexto contiene un usuario callwed propiedad
Yo sé que puedo poner en práctica la misma funcionalidad que un bucle foreach hackeado, pero me preguntaba si hay una manera mejor.
Velocity.Init();
VelocityContext context = new VelocityContext();
context.Put("from", "somewhere");
context.Put("to", "someone");
context.Put("subject", "Welcome to NVelocity");
String s = @"From: $from To: $to Subject:
#if($context.ContainsKey('User'))
We Have a User
#else
No User Found
#end";
var sw = new System.IO.StringWriter();
Velocity.Evaluate(context, sw, "", s);
string merged = sw.ToString();
Solución
El contexto en sí no es una parte del contexto, por lo $context
no funciona. Puede comprobar si hay presencia de esta manera:
#if ($user)
we have a user
#else
no user found
#end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow