2015-04-28 29 views
2

我已經輸入時間字段在我的Grails應用程序:通過參數普惠制發送本地時間對象的Grails

<joda:timePicker name="startTimeReservation" value="${new LocalTime()}" precision="minute" /> 

我想通過參數的值發送到動作控制器。這是從控制器代碼,我抓住這個值:

oldCafeeInfo.startTimeLimit = params['startTimeReservation'] 

在參數發送,我收到了這樣的錯誤:

Cannot cast object 'struct' with class 'java.lang.String' to class 'org.joda.time.LocalTime' 

如何正確發送參數?

回答

0

我發現我自己的選擇。我注意到params['startTimeReservation']作爲字符串「struct」來到控制器。另外,在日誌中,我注意到,這個結構除以startTimeReservation_hourstartTimeReservation_minutes。它們包含整數值,它們很容易解析!然後這些值可以作爲參數傳送到new LocalTime(hour, minute)。所以我們創建了一個可以記錄到數據庫的新的LocalTime實例。不知何故,我懷疑這是一個很好的變體,但它有效。

1

在請求中的所有數據是字符串,所以你需要解析字符串:

oldCafeeInfo.startTimeLimit = LocalTime.parse(params['startTimeReservation'], format) 

格式的SimpleDateFormat。

或者您可以使用未來的答案,對於做automaticaly通過結合:Binding a Grails date from params in a controller