В моем коде сегодня я столкнулся с интересной проблемой. Я использую Grails 2.2.0.Настройка свойства календаря объекта домена
Вот код
def user = lookupUserClass().get(params.id)
log.info "[update]user.subscriptionExpiryDate1: " + user.subscriptionExpiryDate
user.subscriptionExpiryDate = Calendar.getInstance();
log.info "[update]user.subscriptionExpiryDate2: " + user.subscriptionExpiryDate
if (user.subscriptionExpiryDate instanceof Calendar) {
log.error "***** Is A Calendar Instance ***"
} else if (user.subscriptionExpiryDate instanceof String) {
log.error "***** Is A String Instance ***"
} else {
log.error "***** Is Something else ***"
}
if (!user.save()) {
log.error "[update]Error occured saving user. Errors are: "
user.errors.each { err -> log.error err; }
render view: 'edit', model: buildUserModel(user)
return
} else {
log.info "[update]Successfully saved user"
}
subscriptionExpiryDate
является календарь свойство в моем User
объекта.
Когда я выполняю сохранения я получаю следующее сообщение об ошибке
Не удалось преобразовать значение свойства типа «» java.lang.String для требуемого типа «java.util.Calendar» для свойства «subscriptionExpiryDate»; вложенное исключение java.lang.IllegalArgumentException: дата не удалось разобрать: не поддается синтаксическому анализу Дата: 05/03/2013
Может кто-нибудь, пожалуйста, объясните, почему я бы видеть эту ошибку на приведенном выше коде, ничего не выделяясь
так что сообщение об ошибке из вышеперечисленного зарегистрировано? Если после 'Unparsable date 'ничего не происходит:' дата пуста и несовместима/недействительна – moeTi
Я предлагаю вам использовать Joda instaead of Calendar. См. [Плагин] (http://grails.org/plugin/joda-time) –
@moeti извинения, я не вставлял полную дату, дата распечатывается и является действительной датой. Серджио - спасибо Серхио. Я сохраню это но мне было бы интересно узнать, почему мой первоначальный код не работает сначала – Damien