Dans un modèle NVelocity Comment tester l'existence d'une propriété

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

  •  29-09-2019
  •  | 
  •  

Question

Je construis un modèle simple NVelocity mais je ne peux pas comprendre comment tester l'existence d'une variable -. Dans cet exemple, je veux tester si le contexte contient une propriété utilisateur callwed

Je sais que je peux mettre en œuvre les mêmes fonctionnalités que boucle foreach piraté, mais je me demandais s'il y a une façon meilleure.

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();
Était-ce utile?

La solution

Le contexte lui-même ne fait pas partie du contexte, donc $context ne fonctionne pas. Vous pouvez vérifier la présence comme ceci:

#if ($user)
  we have a user
#else
  no user found
#end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top