读书人

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

发布时间: 2012-10-06 17:34:01 作者: rapoo

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)

读书人网 >Web前端

热点推荐