In einer NVelocity Vorlage wie testen Sie für die Existenz einer Immobilie

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

  •  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();
War es hilfreich?

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