0
今天我在代碼中遇到了一個有趣的問題。 我正在使用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異常:無法解析日期:無法解析的日期:2013年5月3日
任何人都可以請解釋爲什麼我會看到此錯誤上面的代碼如無正站在
那麼哪個錯誤信息被記錄下來?如果'Unparsable date:'之後什麼也沒有,那麼日期是空的,因此無法解析/無效 – moeTi 2013-03-05 16:21:10
我建議你使用Calendar的Joda instaead。見[插件](http://grails.org/plugin/joda-time) – 2013-03-05 16:33:31
@moeti道歉,我沒有粘貼完整的日期,日期打印出來,是一個有效的日期塞爾吉奧 - 謝謝塞爾吉奧我會保持記住,但我會好奇爲什麼我的初始代碼不是第一個工作 – Damien 2013-03-05 16:39:59