Grails、Joda-Time 插件、可为空的 TimePicker 无法正常工作
Grails, Joda-Time plugin, TimePicker nullable not working
我有一个域 class,属性为 start + end,它们都是 LocalTime(Joda-Time 插件)。我希望结束时间可以为空。为此,我使用了以下约束:end nullable: true
。脚手架是通过 Joda 模板实现的,效果很好。唯一的问题是,在结尾 属性 的时间选择器中不选择任何内容会导致:Cant populate a class org.joda.time.LocalTime without a hour
。
这是视图中生成的代码:
<div class="fieldcontain ${hasErrors(bean: dailyBookingInstance, field: 'end', 'error')} ">
<label for="end">
<g:message code="dailyBooking.end.label" default="End" />
</label>
<joda:timePicker name="end" value="${dailyBookingInstance?.end}" default="none" noSelection="['': '']"></joda:timePicker>
</div>
这是一个绑定错误 - Joda Time Plugin - Fields nullable?
一个解决方法是--
更改视图中的字段名称,比如 time
<joda:timePicker name="time" value="${myDomainInstance?.end}" default="none" noSelection="['': '']"/>
并且只有在数据存在的情况下才将其填充到您的域实例中,就像这样
def save(MyDomain myDomainInstance) {
if(params.time_minute && params.time_hour){
myDomainInstance.end = new LocalTime(params.int('time_hour'), params.int('time_minute'))
myDomainInstance.validate()
}
//Other save code
}
希望这对您有所帮助...,.
我有一个域 class,属性为 start + end,它们都是 LocalTime(Joda-Time 插件)。我希望结束时间可以为空。为此,我使用了以下约束:end nullable: true
。脚手架是通过 Joda 模板实现的,效果很好。唯一的问题是,在结尾 属性 的时间选择器中不选择任何内容会导致:Cant populate a class org.joda.time.LocalTime without a hour
。
这是视图中生成的代码:
<div class="fieldcontain ${hasErrors(bean: dailyBookingInstance, field: 'end', 'error')} ">
<label for="end">
<g:message code="dailyBooking.end.label" default="End" />
</label>
<joda:timePicker name="end" value="${dailyBookingInstance?.end}" default="none" noSelection="['': '']"></joda:timePicker>
</div>
这是一个绑定错误 - Joda Time Plugin - Fields nullable?
一个解决方法是--
更改视图中的字段名称,比如 time
<joda:timePicker name="time" value="${myDomainInstance?.end}" default="none" noSelection="['': '']"/>
并且只有在数据存在的情况下才将其填充到您的域实例中,就像这样
def save(MyDomain myDomainInstance) {
if(params.time_minute && params.time_hour){
myDomainInstance.end = new LocalTime(params.int('time_hour'), params.int('time_minute'))
myDomainInstance.validate()
}
//Other save code
}
希望这对您有所帮助...,.