2015-05-16 1 views
1

У меня есть класс домена с атрибутами start + end, оба из них - LocalTime (плагин Joda-Time). Я хочу, чтобы время окончания было нулевым. Для этого я использовал следующее ограничение: end nullable: true. Леса реализуются через шаблон Joda, и он работает очень хорошо. Единственная проблема заключается в том, что при выборе ничего с помощью timepicker для конечного свойства получается: Cant populate a class org.joda.time.LocalTime without a hour.Grails, Joda-Time plugin, TimePicker nullable не работает

Это сгенерированный код в представлении:

<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> 
+0

Это ошибка привязки (http://grails.1312388.n4.nabble.com/Joda-Time-Plugin-Fields-nullable-td4655494.html) – user1690588

+0

Да, я тоже это видел, но не знаю, что делайте с ним, так как он не обеспечивает решение моей проблемы. – user3667018

ответ

1

Это ошибка связывания - Joda Time Plugin - Fields nullable?

Одна работа вокруг is--

Изменить имя поля зрения, скажем 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 
} 

Надеюсь, это поможет.,.

+0

Спасибо, но теперь он говорит «Нет такого свойства (времени) для класса», поскольку он не определен в моем классе домена. – user3667018

+0

ОК, понял, просто небольшое изменение, которое я забыл. в значении тега 'joda: timePicker' должно быть' '$ {myDomainInstance ?.end}" '. Я обновил свой ответ. Попробуйте еще раз. – user1690588

+0

Спасибо! Все хорошо! – user3667018