取消设置速度中的变量
是否可以将速度引用设置为“null”或“未定义”?
#set- 建立参考格式的值:
# [ { ] set [ } ] ( $ref = [ ", ' ]arg[ ", ' ] )用法:
$ref- 赋值的 LHS 必须是变量引用或属性引用。
arg- 赋值的 RHS,如果用双引号括起来,则解析 arg;如果用单引号括起来,则不解析 arg。如果 RHS 的计算结果为 null,则不会将其分配给 LHS。(强调我的)
我找不到等效的宏。#unset
是否可以将速度引用设置为“null”或“未定义”?
#set- 建立参考格式的值:
# [ { ] set [ } ] ( $ref = [ ", ' ]arg[ ", ' ] )用法:
$ref- 赋值的 LHS 必须是变量引用或属性引用。
arg- 赋值的 RHS,如果用双引号括起来,则解析 arg;如果用单引号括起来,则不解析 arg。如果 RHS 的计算结果为 null,则不会将其分配给 LHS。(强调我的)
我找不到等效的宏。#unset
可以将引用设置为 false。由于非空引用被视为 true,则可以测试是否设置了该引用。这在循环中很有用。
#foreach ($obj in $list) #set ($x = false) #set ($x = $obj.maybeNull()) #if ($x) ... $x #end #end
继续阅读...
根据 Velocity 的配置方式,通常无法通过此机制从上下文中移除现有引用。(请注意,这可以通过更改其中一个 Velocity 配置属性来允许)
在 VE 默认配置中具有属性
directive.set.null.allowed = false
如果为 true,则具有无效引用或 null 值的 #set() 语句的右侧会将左侧设置为 null。如果为假,左手边将保持不变
将其更改为使用 on,即可开始使用。truesetProperty()org.apache.velocity.app.Velocity