[size=large]#1[/size]
[b]--action里-- [/b]
println(params.payAmount)
Expense e = new Expense(params)
println(e.payAmount)
[b]--页面输入 10o (最后一位是字母option的开头)--[/b]
奇迹发生了,sout输出结果是
10o
10
最终导致存入数据库10
也不知道这个算是自动数据绑定的BUG还是容错机制。。。感觉好危险。。。
[size=large]#2[/size]
[b]背景[/b]
it.payDate是excel插件读取excel的日期,类型为org.joda.time.LocalDate
[b]问题场景[/b]:在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()
[color=red]--奇怪:save前是false,竟然save成功了,save后又变成true[/color]
Expense e = new Expense(it)
LocalDate localDate = it.payDate
e.payDate = localDate.toDate()
更可怕的发生了,重启以后,第一次save,还是不成功,换用前面两种方式再换回来,就能成功。。。
[color=red]终极解决办法,还是先处理在bindData
LocalDate localDate = it.payDate
it.payDate = localDate.toDate()
Expense e = new Expense(it)[/color]
[b]--action里-- [/b]
println(params.payAmount)
Expense e = new Expense(params)
println(e.payAmount)
[b]--页面输入 10o (最后一位是字母option的开头)--[/b]
奇迹发生了,sout输出结果是
10o
10
最终导致存入数据库10
也不知道这个算是自动数据绑定的BUG还是容错机制。。。感觉好危险。。。
[size=large]#2[/size]
[b]背景[/b]
it.payDate是excel插件读取excel的日期,类型为org.joda.time.LocalDate
[b]问题场景[/b]:在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()
[color=red]--奇怪:save前是false,竟然save成功了,save后又变成true[/color]
Expense e = new Expense(it)
LocalDate localDate = it.payDate
e.payDate = localDate.toDate()
更可怕的发生了,重启以后,第一次save,还是不成功,换用前面两种方式再换回来,就能成功。。。
[color=red]终极解决办法,还是先处理在bindData
LocalDate localDate = it.payDate
it.payDate = localDate.toDate()
Expense e = new Expense(it)[/color]