添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在写 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)
  • 标签

    Bash Design Pattern Hadoop JavaScript jQuery Linux MapReduce MySQL Network NoSQL Spring Tcl/Tk Velocity wordpress
    --hack520.com
  • Wordpress源码分析(一):安装过程中页面的加载顺序
    如果整个.php文件内容都是php代码,可以忽略掉?>结尾标签。 在一个文件中定义了常量,必须导入到其他文件中才能再次使用吗? 是的。文件与文件直接并没有直接的关联,只有require和include引入之后,才会发生关
    --Assignment Expert
  • 校友好,哈哈哈
    --maiyu
  • Spring JdbcTemplate 具名参数使用简介
    这个按照你的说的,查询不到结果
    --Mzoro
  • Wordpress代码高亮插件SyntaxHighlighter终极使用详解
    看了下,挺好的,但是我的有时候显示不了要显示的代码
    --s随小风
  • Spring JdbcTemplate 具名参数使用简介
    工作上的收获还是蛮大的,学习了~~~
    --Forrest
  • Java垃圾回收(4):监控与分析
    第一篇链接进入空白
    --ATI
  • Wordpress代码高亮插件SyntaxHighlighter终极使用详解
    写两个按标签,上边的只写href属性,第二个只写name属性。并且这两个属性值必须一致。
    --树莓派raspberry
  • 简易Java(18):属性能否重写?为什么?
    这个根本就是错的,都能打印出来好吗?
  •