In einer NVelocity Vorlage wie testen Sie für die Existenz einer Immobilie
-
29-09-2019 - |
Frage
Ich bin eine einfache NVelocity Vorlage bauen, aber ich kann nicht herausfinden, wie man Test für die Existenz eines Variablen -. In diesem Beispiel möchte ich testen, ob der Kontext eine Eigenschaft callwed Benutzer enthält
Ich weiß, ich kann die gleiche Funktionalität wie eine gehackte foreach-Schleife implementieren, aber ich habe mich gefragt, ob es ein besserer Weg.
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();
Lösung
Der Kontext selbst ist kein Teil des Kontextes, so $context
funktioniert nicht. Sie können auf die Anwesenheit wie folgt überprüfen:
#if ($user)
we have a user
#else
no user found
#end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow