Продолжать читать...
В зависимости от того, как Скорость настроена, обычно не возможно удалить существующую ссылку из контекста с помощью этого механизма. (Обратите внимание, что это может быть разрешено путем изменения одного из Скоростных свойств конфигурации)
В конфигурации по умолчанию VE, имеет свойство
directive.set.null.allowed = false
если это правда, имея правую сторону #set (), оператор с недопустимой ссылкой или нулевым значением установит левую сторону в NULL. Если ложь, левая сторона останется тот же
Изменение это к true
использование setProperty()
на org.apache.velocity.app.Velocity
, и Вы готовы пойти.
Можно установить ссылку на ложь. Поскольку не нулевую ссылку считают верной, можно тогда протестировать, если ссылка установлена. Это полезно в циклах.
#foreach ($obj in $list) #set ($x = false) #set ($x = $obj.maybeNull()) #if ($x) ... $x #end #end
Если вы пытаетесь получить определенные переменные, вы можете злоупотреблять сферой, установленным #Foreach
:
#foreach($localVar in [ 'theValue'])
#end
## localVar will be unset (or returned to previous value) again