$空检查速度

问题描述 投票:0回答:3

我通过您更新的资源了解了在 Velocity 1.6 中使用 $null 进行 null 检查。 资源:读取 Velocity 模板中映射的模型对象 但我面临着如此多的挑战,以至于没有 $null 用于空检查速度,因为没有提供有关此的文档。 请向我提供文档,说明 $null 对于速度中的 null 检查有效。

java struts velocity
3个回答
116
投票

要检查变量是否不为空,只需使用#if ($variable)

#if($变量) 
 ...如果变量不为空,则在此处执行操作
#结尾

如果您需要在变量为空时执行某些操作,只需否定测试即可

#if (!$变量)
 ...如果变量为空,则在此处执行操作
#结尾

4
投票

方法 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。恕我直言,这使得 模板太复杂,难以阅读。


0
投票

对于具有布尔值的变量,这可能会起作用:

#if ($variable || $variable == "false")
  ... if the boolean $variable is not null
#else
  ... if the boolean $variable is null
#end
© www.soinside.com 2019 - 2024. All rights reserved.