我在标签上遇到了一些麻烦,然后从发送了参数的模型中更新了我的Date属性。
这是我的标签:
<g:datePicker name="data" value="${controle.data}" precision="month"
years="${(Calendar.getInstance().get(Calendar.YEAR)-70)..Calendar.getInstance().get(Calendar.YEAR)}"/>
当我打印“params.data”时,它说“struct”,但我不能简单地做:
model.data = params.data
params附带了params.data_month和params.data_year以及String中的相应值,如:
[[data:struct], [data_month:1], [data_year:2009]]
我试着这么做:
model.data = new SimpleDateFormat("MM/yyyy").parse("${params.data_month}/${params.data_year}")
但它拒绝该值,警告:“无法将类型[java.lang.String]的值转换为属性'data '的必需类型[java.util.Date]”
println model.data
println new SimpleDateFormat("MM/yyyy").parse("${params.data_month}/${params.data_year}")
--shows
2006-01-01 00:00:00.0
Sun Jan 01 00:00:00 BRST 2006
答案 0 :(得分:1)
但我不能简单地做:model.data = params.data
为什么不呢?您是否获得例外,或者您只是被过时的文档误导? -
这是一项功能since Grails 1.2。转换为Date
类型将自动执行。
关于SimpleDateFormat
问题,只需添加天,就像这样:
model.data = new SimpleDateFormat("d/MM/yyyy").parse(
"1/${params.data_month}/${params.data_year}")