我已将incomeDate用作日期,并尝试以字符串形式提交' 2015-08-02'。而且我试图以不同的方式提交它但却收到错误。
class IncomeTransaction {
Date incomeDate
------
}
<input type="text" name="incomeDate" placeholder="yyyy-mm-dd" />
控制器:
String dateString = params.incomeDate
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = formatter.parse(dateString);
incomeTransactionInstance.incomeDate = myDate
// get error like ---- Property incomeDate be a valid Date in grails
/*Another way*/
//params.incomeDate = new Date().parse( 'yyyy-MM-dd', params.incomeDate )
// get error like ---- unparsable
答案 0 :(得分:4)
使用<g:datePicker />
的替代方法,您也可以在input
页面中使用常规gsp
。只需将以下内容添加到您的域类:
import org.grails.databinding.BindingFormat
class IncomeTransaction {
@BindingFormat('yyyy-MM-dd')
Date incomeDate
}
当您使用日期选择器(例如jQuery Datepicker)时,这非常有用。
答案 1 :(得分:3)
如果你不知道但是想要自己找出grails有一个好东西,你可以随时生成控制器并通过grails查看并查看它是如何完成的
我在日期使用的不是输入类型文本,而是以下内容:
<g:datePicker name="incomeDate" precision="day" value="${incomeTransactionInstance?.incomeDate}" default="none" noSelection="['': '']" />
在你的控制器中你不需要任何解析:
incomeTransactionInstance.properties = params
并保存您的对象
答案 2 :(得分:0)
可以在grails-app/conf/application.groovy
中配置全局设置(对于Grails 3,在Grails 2的grails-app/conf/Config.groovy
),以定义在绑定到Date时将在应用程序范围内使用的日期格式,如此:
grails.databinding.dateFormats = ['yyyy-MM-dd']
希望这有帮助。