通过 Grails 中 gsp 的参数发送 LocalTime 对象

Send LocalTime object via parameters from gsp in 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'

如何正确发送参数?

请求中所有数据都是字符串,需要解析字符串:

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

格式为 SimpleDateFormat。

或者您可以使用下一个答案,通过绑定自动完成:Binding a Grails date from params in a controller

我找到了自己的选择。我注意到 params['startTimeReservation'] 作为字符串 "struct" 进入控制器。此外,在日志中,我注意到,这个结构除以 startTimeReservation_hourstartTimeReservation_minutes。它们包含整数值,很容易解析!然后这些值可以作为参数传输到 new LocalTime(hour, minute)。所以我们创建了一个新的 LocalTime 实例,它可以被记录到数据库中。不知何故,我怀疑这是一个好的变体,但它确实有效。