Ram*_*han 1 grails grails-orm simpledateformat
在我的grails域中,我有一个字段Date,即java.util.Date.
在我的控制器中,我使用SimpleDateFormate从params加载此日期.
确切地说,params.date类似'20/02/2013 02:30 am'.在控制器中我加载如下:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm a"); domainInstance.date = simpleDateFormat.parse(params.date)
执行此语句时,未检测到错误.但是,当保存域实例时会生成错误
[typeMismatch.Domain.date,typeMismatch.date,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable:codes
[无法将'java.lang.String'类型的属性值转换为属性'date'所需的类型'java.util.Date'; 嵌套异常是java.lang.IllegalArgumentException:无法解析日期:Unparseable date:"20/02/2013 02:30 am"]
你能告诉我哪里出了问题吗?我很确定SimpleDateFormat将String解析为Date.为什么它接受为String.
感谢您的回复,但我找到了问题的解决方案.问题是这样的.
我将domainInstance实例化为domainInstance = new Domain(params)这是控制器操作中的第一个语句.
执行此语句时,params以"dd/MM/yyyy HH:mm a"格式保存日期.因此,此语句在domainInstance对象中添加了一个错误.
稍后使用SimpleDateFormat后,变量会更新,但错误仍然保留在对象中,因此会出现错误.
在语句'domainInstance = new Domain(params)'调用语句domainInstance.clearErrors()之后,立即解决此错误.
这会清除对象中的所有错误.稍后当保存domainInstance时,将调用validate.如果验证由于某些其他错误而失败,则在那时添加相应的错误.
Rammohan
| 归档时间: |
|
| 查看次数: |
2539 次 |
| 最近记录: |