在写 Java 项目时,很多时候我们都必须判断一下对象是否为
null
。这个在 Java 代码中,很容易实现。在使用 Velocity 的 Java Web 项目中,很多时候,需要在 Velocity 的模板中,判断一个对象是否为空。那么这时,该如何判断呢?今天D瓜哥就来给大家简单介绍介绍!
事实上,在 Velocity 中
null
对象是作为
false
来进行进行计算的。那么,判断是否为空就很简单了:
#if( ! $diguage )
<a href="http://www.diguage.com/">"地瓜哥"博客网</a>
如果
$diguage
的值为
false
,那么,也能通过这个测试。所以,这种方式检查的是引用是否为
null
或
false
。
在静默引用(Quiet References)中,如果引用为
null
,则会被计算为空字符串
""
。那么,我们也可以里中这个特性来完成我们的需求:
#if( "$!diguage" == "" )
<a href="http://www.diguage.com/">"地瓜哥"博客网</a>
这种检查方式,如果
$diguage
为空字符串,则也能通过检查。所以,这个检查方式,实际检查的是引用是否为
null
或者为空字符串
""
。
值得一提的是,如果仅仅需要检查引用是否为空字符串
""
,可以这样写:
#if( "$diguage" == "" )
<a href="http://www.diguage.com/">"地瓜哥"博客网</a>
结合
方式一
和
方式二
,可以做到仅仅检查一个用是否为
null
。
#if( (! $diguage ) && ("$!diguage" == "") )
<a href="http://www.diguage.com/">"地瓜哥"博客网</a>
这里的逻辑是这样的:
(null or false) and (null or > empty-string)
,从这里就能一眼看出,如果结果想为
true
, 则引用
$diguage
必须为
null
。因为
false
和空字符串
""
永远不可能为
true
。在D瓜哥看来,这样写,未免有点太复杂了。
不要直接检查对象对象是否为空,而是使用一个能自解释的方法(self-explaining method)。例如:
#if( $car.empty )
<a href="http://www.diguage.com/">"地瓜哥"博客网</a>
这是 Shinobu Kawai’s 推荐的解决方案。前提就是必须实现一个如下的一个方法,但是,带来的好处就是可以使模板易读性更强!
public boolean isEmpty()
// 如果车子为空,则返回 true
参考资料中,还有其他方法。但是,这些方法相关的类,D瓜哥找了一下,根本没有找到;尝试了一下
#ifnull( $diguage )
,模板解析直接就报错了。相比,这些方法都已经不再支持了。所以,D瓜哥就不再介绍了。
CheckingForNull – Velocity Wiki
Conditionals – Velocity User Guide
Quiet Reference Notation – Velocity User Guide
作 者:
D瓜哥,https://www.diguage.com/
原文链接:
null">https://wordpress.diguage.com/archives/142.html
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
简易Java(12):如何高效检查一个数组中是否包含某个值?-(33,500)
分享D瓜哥最近攒的资料(架构方面)-(24,288)
彻底解决Git中文乱码问题-(23,459)
WordPress代码高亮插件SyntaxHighlighter终极使用详解-(15,499)
分享一些资料(侧重Linux)-(14,554)
墙外“谷妹”,墙里佳人“上”-(9,510)
实例分析JavaScript中的事件委托和事件绑定-(8,076)
Git&Github社区化协作使用指南-(5,182)
WordPress源码分析(一):安装过程中页面的加载顺序-(4,738)
给哥三十五次机会,哥就能猜中你的手机号-(4,696)
Javascript模块化编程(三):模块化编程实战,试用SeaJS-(4,619)
强烈推荐十本好书-(4,141)
只要一部计算机,就可以创造出无限的世界-(4,072)
在阿里云安装WordPress-(3,882)
趣解HTTP状态码-(3,767)
分享一些D瓜哥攒的比较好的Web开发资料-(3,537)
jQuery最佳实践-(3,260)
如何在Rails中建立后台管理页面?-(3,186)
一些鲜为人知的但却很有趣的Unix/Linux命令(一)-(3,141)
MySQL远程访问设置终极解决方案-(2,974)