Velocity中判断表达式是不是为空

如题所述

Velocity中判断表达式是否为空

在写模版文件判断数据是否为空的时候,想当然的写成了下面的代码。
#if(${data} != null)
...
#end

结果Velocity解析时抛出了如下错误:
Caused by: org.apache.velocity.exception.ParseErrorException: Encountered "null" at generator file[line 7, column 27]
一查Velocity的语法说明,原来Velocity判断null和java是不一样的。
总统上说,判断是否为null有下面几种方法:
1. #if (! $foo) 判断$foo为空,判断非空为 #if ($foo)

2. 使用 #ifnull() 或 #ifnotnull()

#ifnull ($foo)

要使用这个特性必须在velocity.properties文件中加入:

userdirective
= org.apache.velocity.tools.generic.directive.Ifnulluserdirective =
org.apache.velocity.tools.generic.directive.Ifnotnull
3. 使用null工具判断

#if($null.isNull($foo))

注意这种方式特别有用,尤其你在需要这个判断作为一个判断字句时,比如我要你判断一个集合为null或为空时只能使用这种方式了:

$if ($null.isNull($mycoll) || $mycoll.size()==0)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-07
-z 表示字符串为空 那么判断如下
[ -z $str ] 这个表达式就是判断str这个字符串是否为空
为空返回:True
不为空返回:False

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网