Сбрасывание переменной в Скорости

14
задан vartec 18 March 2009 в 09:51
поделиться

3 ответа

Продолжать читать...

В зависимости от того, как Скорость настроена, обычно не возможно удалить существующую ссылку из контекста с помощью этого механизма. (Обратите внимание, что это может быть разрешено путем изменения одного из Скоростных свойств конфигурации)

В конфигурации по умолчанию VE, имеет свойство

directive.set.null.allowed = false

если это правда, имея правую сторону #set (), оператор с недопустимой ссылкой или нулевым значением установит левую сторону в NULL. Если ложь, левая сторона останется тот же

Изменение это к true использование setProperty() на org.apache.velocity.app.Velocity, и Вы готовы пойти.

12
ответ дан 1 December 2019 в 07:19
поделиться

Можно установить ссылку на ложь. Поскольку не нулевую ссылку считают верной, можно тогда протестировать, если ссылка установлена. Это полезно в циклах.

#foreach ($obj in $list)
#set ($x = false)
#set ($x = $obj.maybeNull())
#if ($x)
...
$x
#end
#end
23
ответ дан 1 December 2019 в 07:19
поделиться

Если вы пытаетесь получить определенные переменные, вы можете злоупотреблять сферой, установленным #Foreach :

#foreach($localVar in [ 'theValue'])

#end

## localVar will be unset (or returned to previous value) again
2
ответ дан 1 December 2019 в 07:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: