首页 > 代码库 > Velocity中避免null引起的数据问题
Velocity中避免null引起的数据问题
请先看下面一段代码:
- #foreach($id in [1..50])
- #set($user = $User.Get($id))
- $id : ${user.name}
- #end
上面这段代码中,假设只存在一个id为1的用户,但是却会显示50个id都是1的用户及其名称,因为在 Velocity 中,如果某个赋值语句返回的结果是null,则不改变所赋值的对象值,也就是说 $user 变量会一直保持上一个有效值。
官方文档中给出解决的办法是将上面的代码改为:
- #set($user = false)
- #set($user = $User.Get($id))
- $id : ${user.name}
- #end
还有其他的方法(推荐):
这个问题终于被我碰上了,根本的解 决方法应该是:
解决方法:修改velocity.properties
原配制:directive.set.null.allowed = false
修改后的配制: directive.set.null.allowed = true
修改完成后,用#if($diary)即可判断对象是否为空了~~~
见:http://www.itsmile.net/blog/article_show/20/273559/Velocity-Set-Null-value-method-Foreach
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。