我通过您更新的资源了解了在 Velocity 1.6 中使用 $null 进行 null 检查。 资源:读取 Velocity 模板中映射的模型对象 但我面临着如此多的挑战,以至于没有 $null 用于空检查速度,因为没有提供有关此的文档。 请向我提供文档,说明 $null 对于速度中的 null 检查有效。
要检查变量是否不为空,只需使用#if ($variable)
#if($变量) ...如果变量不为空,则在此处执行操作 #结尾
如果您需要在变量为空时执行某些操作,只需否定测试即可
#if (!$变量) ...如果变量为空,则在此处执行操作 #结尾
方法 1:利用 null 被评估为错误条件这一事实。 (参见 http://velocity.apache.org/engine/devel/user-guide.html#Conditionals)
#if( ! $car.fuel )
注意:如果 $car.fuel 的结果是 布尔值假。这种方法实际上检查的是是否 引用为空或错误。
方法 2:利用 null 在安静引用中被评估为空字符串的事实。 (参见 http://velocity.apache.org/engine/devel/user-guide.html#quietreferencenotation)
#if( "$!car.fuel" == "" )
注意:如果 $car.fuel 的结果是 空字符串。这种方法实际上检查的是是否 引用为空或为空。顺便说一句,只需检查是否为空即可 实现方式:
#if( "$car.fuel" == "" )
方法 3:结合方法 1 和 2。这将仅检查 null 和 null。
#if ((! $car.fuel) && ("$!car.fuel" == ""))
注意:这里的基本逻辑是:“(null 或 false) 和 (null 或
empty-string)" => 如果为 true,则必须为 null。这是 true,因为“false 和空字符串而不是 null”永远不会为 true。恕我直言,这使得 模板太复杂,难以阅读。
对于具有布尔值的变量,这可能会起作用:
#if ($variable || $variable == "false")
... if the boolean $variable is not null
#else
... if the boolean $variable is null
#end