В шаблоне NVelocity как вы проверяете наличие свойства - PullRequest
0 голосов
/ 25 июня 2010

Я создаю простой шаблон 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();

1 Ответ

0 голосов
/ 25 июня 2010

Сам контекст не является частью контекста, поэтому $context не работает. Вы можете проверить наличие присутствия следующим образом:

#if ($user)
  we have a user
#else
  no user found
#end
...