在写 Java 项目时,很多时候我们都必须判断一下对象是否为 null
。这个在 Java 代码中,很容易实现。在使用 Velocity 的 Java Web 项目中,很多时候,需要在 Velocity 的模板中,判断一个对象是否为空。那么这时,该如何判断呢?今天D瓜哥就来给大家简单介绍介绍!
事实上,在 Velocity 中 null
对象是作为 false
来进行进行计算的。那么,判断是否为空就很简单了:
#if(!$diguage ) <a href="http://www.diguage.com/">"地瓜哥"博客网</a> #end |
如果
$diguage
的值为false
,那么,也能通过这个测试。所以,这种方式检查的是引用是否为null
或false
。
在静默引用(Quiet References)中,如果引用为 null
,则会被计算为空字符串 ""
。那么,我们也可以里中这个特性来完成我们的需求:
#if( "$!diguage" == "" ) <a href="http://www.diguage.com/">"地瓜哥"博客网</a> #end |
这种检查方式,如果
$diguage
为空字符串,则也能通过检查。所以,这个检查方式,实际检查的是引用是否为null
或者为空字符串""
。
值得一提的是,如果仅仅需要检查引用是否为空字符串 ""
,可以这样写:
#if( "$diguage" == "" ) <a href="http://www.diguage.com/">"地瓜哥"博客网</a> #end |
结合 方式一 和 方式二,可以做到仅仅检查一个用是否为 null
。
#if( (! $diguage ) && ("$!diguage" == "") ) <a href="http://www.diguage.com/">"地瓜哥"博客网</a> #end |
这里的逻辑是这样的:
(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> #end |
这是 Shinobu Kawai’s 推荐的解决方案。前提就是必须实现一个如下的一个方法,但是,带来的好处就是可以使模板易读性更强!
public boolean isEmpty() { // 如果值为空,则返回 true } |
参考资料中,还有其他方法。但是,这些方法相关的类,D瓜哥找了一下,根本没有找到;尝试了一下#ifnull( $diguage )
,模板解析直接就报错了。相比,这些方法都已经不再支持了。所以,D瓜哥就不再介绍了。
转自:
http://www.diguage.com/archives/142.html
© admin for 可乐吧, 2016. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: Velocity
您可能也喜欢: |
Velocity Macro(宏) |
jQuery 1.8 正式版发布 |
jQuery不规则图片选项卡实现及思路 |
TortoiseSVN中文包 |
无觅 |
Feed enhanced by Better Feed from Ozh