在域对象上设置日历属性

时间:2013-03-05 16:09:36

标签: grails grails-2.2

我今天在代码中遇到了一个有趣的问题。 我使用的是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'类型的属性值转换为属性'subscriptionExpiryDate'的必需类型'java.util.Calendar';嵌套异常是java.lang.IllegalArgumentException:无法解析日期:Unparseable date:05/03/2013

有人可以解释为什么我会看到上述代码的这个错误,因为没有什么是突出的

1 个答案:

答案 0 :(得分:0)

根据安德鲁斯的建议,这个问题已得到解决