Dans un modèle NVelocity Comment tester l'existence d'une propriété
-
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();
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