En una plantilla NVelocity cómo se hace la prueba de la existencia de una propiedad

StackOverflow https://stackoverflow.com/questions/3117122

  •  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();
¿Fue útil?

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
scroll top