我正在构建一个简单的 NVelocity 模板,但我不知道如何测试变量是否存在——在这个例子中,我想测试上下文是否包含一个名为 callwed User 的属性。
我知道我可以实现与被黑的 foreach 循环相同的功能,但我想知道是否有更好的方法。
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();