【问题标题】:$null check in velocity$null 检查速度
【发布时间】:2021-05-18 21:01:09
【问题描述】:

我通过您更新的资源了解了在速度 1.6 中使用 $null 进行空值检查。 资源:Reading model objects mapped in Velocity Templates 但是我面临着如此多的挑战,因为没有提供关于此的文档,所以没有 $null 用于空检查速度。 请向我提供说明 $null 对 null check in velocity 有效的文档。

提前致谢 幸运

【问题讨论】:

    标签: java struts velocity


    【解决方案1】:

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

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

    如果你需要在变量为空的情况下做一些事情,只需否定测试

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

    【讨论】:

    • 如果是布尔值,这也将返回 true。这是一个很好的空检查文档:wiki.apache.org/velocity/CheckingForNull
    • 跟进@TJ 评论,知道最近如何导入NullTool 吗?它似乎不在velocity-tools 2.0中。
    【解决方案2】:

    方法 1:使用 null 被评估为错误条件的事实。 (参见http://velocity.apache.org/engine/devel/user-guide.html#Conditionals

    #if( ! $car.fuel )
    

    注意:如果 $car.fuel 的结果是 布尔假。这种方法实际上检查的是 引用为 null 或 false。

    方法 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 or false) and (null or

    empty-string)" => 如果为真,则必须为空。这是真的,因为“假和空字符串而不是空”永远不会为真。恕我直言,这使得 模板太复杂,无法阅读。

    【讨论】:

      猜你喜欢
      • 2016-12-04
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      相关资源
      最近更新 更多