В шаблоне NVelocity Как вы тестируете на существование недвижимости
-
29-09-2019 - |
Вопрос
Я строю простой шаблон NVelocity, но я не могу выяснить, как тестировать наличие переменной - в этом примере я хочу проверить, содержит контекст, содержит недвижимость позоров пользователя.
Я знаю, что я могу реализовать ту же функциональность, что и взломанная петля 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();
Решение
Сам контекст не является частью контекста, так $context
не работает. Вы можете проверить наличие присутствия, как это:
#if ($user)
we have a user
#else
no user found
#end
Не связан с StackOverflow