总结:
velocity判断为null和空:
方法一:(不管是不是集合,都可以使用如下方法进行判断,综合判断了为null和为空的情况)
用#if(!$xxx)来判断元素是null
用#if($xxx)来判断元素不是null
方法二:
当判断集合是否为null或者是否为空的还是,推荐使用如下方法
#if(!$listnull || $listnull.size()==0)
出现的错误:
看到别人介绍说使用
$null.isNull()来判断是否为空,但是经过试验发现:
在处理以下几种情况的时候会出错:
- 后台没有回传的:null属性
- 后台有回传的:null字符串
- 后台有回传的:null集合
$null.isNull()结论:
$null.isNull()只能适用于为空不为null的情况.为null则会出错
用
$list.size()==0这种方法判断的时候,当字符串是null的时候,就会显示不对(这也是正常的,null哪有什么size)
综合上述情况,其他人介绍的那种
$if ($null.isNull($mycoll) || $mycoll.size()==0)
的情况,只能适用于:后台有回传这个集合,而且这个集合不为null,为空的时候,它才可以正确判断;
以下是测试数据
后台返回的参数
String testnullString = null;
uiModel.addAttribute("stringnull",testnullString);
String string = "";
uiModel.addAttribute("stringempty", string);
List<Integer> list = new ArrayList<Integer>();
uiModel.addAttribute("listempty", list);
List<Integer> list2 = null;
uiModel.addAttribute("listnull", list2)
页面
正确--><span>当是没有加入attribute中的对象的时候:${notexit}</span><br/>
正确--><span>当是没有加入attribute中的对象的时候:$!{notexit}</span><br/>
正确--><span>当是没有加入attribute中的对象的时候:#if(!$notexit)notexit is null #else notexit is notnull #end</span><br/>
错误-用if($null.isNull($notexit))来判断一个不存在的属性值-><span>当是没有加入attribute中的对象的时候:#if($null.isNull($notexit))notexit is null #else notexit is notnull #end</span><br/>
<br/>
正确--><span>stringempty:${stringempty}</span><br/>
正确--><span>stringempty:$!{stringempty}</span><br/>
正确--><span>stringempty:#if(!$stringempty)stringempty is null #else stringempty is notnull #end</span><br/>
正确--><span>stringempty:#if($null.isNull($stringempty))stringempty is null #else stringempty is notnull #end</span><br/>
<br/>
<br/>
正确--><span>stringnull:${stringnull}</span><br/>
正确--><span>stringnull:$!{stringnull}</span><br/>
正确--><span>stringnull:#if(!$stringnull)stringnull is null #else stringnull is notnull #end</span><br/>
错误-使用null.isNull($stringnull)来判断null字符串-><span>stringnull:#if($null.isNull($stringnull))stringnull is null #else stringnull is notnull #end</span><br/>
<br/>
正确--><span>listempty:${listempty}</span><br/>
正确--><span>listempty:$!{listempty}</span><br/>
正确--><span>listempty:#if(!$listempty)listempty is null #else listempty is notnull #end</span><br/>
正确--><span>listempty:#if($null.isNull($listempty))listempty is null #else listempty is notnull #end</span><br/>
正确--><span>listempty:#if($listempty.size()==0)listempty size is 0 #else listempty size is not 0 #end</span><br/>
<br/>
正确--><span>listnull:${listnull}</span><br/>
正确--><span>listnull:$!{listnull}</span><br/>
正确--><span>listnull:#if(!$listnull)listnull is null #else listnull is notnull #end</span><br/>
错误-使用if($null.isNull($listnull)来判断null集合-><span>listnull:#if($null.isNull($listnull))listnull is null #else listnull is notnull #end</span><br/>
错误-使用if($null.isNull($listnull)来判断null集合-><span>listnull:#if($null.isNull($listnull) || $listnull.size()==0)listnull is null or size ==0 #else listnull is notnull or size !=0 #end</span><br/>
错误-使用if($listnull.size()==0)来判断null集合的长度-><span>listnull:#if($listnull.size()==0)listnull size is 0 #else listnull size is not 0 #end</span><br/>
正确--><span>listnull:#if(!$listnull || $listnull.size()==0)listnull is null or size ==0 #else listnull is notnull or size !=0 #end</span><br/>
显示图片