相信這個(gè)問(wèn)題是很多使用Velocity的朋友所經(jīng)常碰到的,大家可能非常期望下面這樣的代碼能夠運(yùn)行:
#if($foo == null)
...
#end
實(shí)際上這段代碼會(huì)報(bào)錯(cuò)。這是因?yàn)閂elocity中對(duì)null的支持比較特別??偨y(tǒng)上說(shuō),判斷是否為null有下面幾種方法:
1. #if (! $foo) 判斷$foo為空,判斷非空為 #if ($foo)
2. 使用 #ifnull() 或 #ifnotnull()
#ifnull ($foo)
要使用這個(gè)特性必須在velocity.properties文件中加入:
userdirective = org.apache.velocity.tools.generic.directive.Ifnulluserdirective = org.apache.velocity.tools.generic.directive.Ifnotnull
3. 使用null工具判斷
#if($null.isNull($foo))
注意這種方式特別有用,尤其你在需要這個(gè)判斷作為一個(gè)判斷字句時(shí),比如我要你判斷一個(gè)集合為null或?yàn)榭諘r(shí)只能使用這種方式了:
$if ($null.isNull($mycoll) || $mycoll.size()==0)
#if($foo == null)
...
#end
實(shí)際上這段代碼會(huì)報(bào)錯(cuò)。這是因?yàn)閂elocity中對(duì)null的支持比較特別??偨y(tǒng)上說(shuō),判斷是否為null有下面幾種方法:
1. #if (! $foo) 判斷$foo為空,判斷非空為 #if ($foo)
2. 使用 #ifnull() 或 #ifnotnull()
#ifnull ($foo)
要使用這個(gè)特性必須在velocity.properties文件中加入:
userdirective = org.apache.velocity.tools.generic.directive.Ifnulluserdirective = org.apache.velocity.tools.generic.directive.Ifnotnull
3. 使用null工具判斷
#if($null.isNull($foo))
注意這種方式特別有用,尤其你在需要這個(gè)判斷作為一個(gè)判斷字句時(shí),比如我要你判斷一個(gè)集合為null或?yàn)榭諘r(shí)只能使用這種方式了:
$if ($null.isNull($mycoll) || $mycoll.size()==0)