首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

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

2012-10-06 
Velocity中判断表达式是否为空在写模版文件判断数据是否为空的时候,想当然的写成了下面的代码。#if(${data}

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)

热点排行