首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

征集几个Grails中自动数据绑定的容错机制,但总觉得蛮bug的。

2013-01-28 
收集几个Grails中自动数据绑定的容错机制,但总觉得蛮bug的。。。#1--action里--println(params.payAmount)Exp

收集几个Grails中自动数据绑定的容错机制,但总觉得蛮bug的。。。
#1
--action里--  
  println(params.payAmount)
  Expense e = new Expense(params)
  println(e.payAmount)

--页面输入 10o (最后一位是字母option的开头)--
奇迹发生了,sout输出结果是
  10o
  10
最终导致存入数据库10

也不知道这个算是自动数据绑定的BUG还是容错机制。。。感觉好危险。。。


#2
背景
it.payDate是excel插件读取excel的日期,类型为org.joda.time.LocalDate

问题场景:在save前后验证
println(e.validate())
e.save()
println(e.validate())

--都是true
Expense e = new Expense()
e.payDate = new Date()

--都是true
Expense e = new Expense()
LocalDate localDate = it.payDate
e.payDate = localDate.toDate()

--奇怪:save前是false,竟然save成功了,save后又变成true
Expense e = new Expense(it)
LocalDate localDate = it.payDate
e.payDate = localDate.toDate()

更可怕的发生了,重启以后,第一次save,还是不成功,换用前面两种方式再换回来,就能成功。。。

终极解决办法,还是先处理在bindData
LocalDate localDate = it.payDate
it.payDate = localDate.toDate()
Expense e = new Expense(it)

热点排行