通过 Grails 中 gsp 的参数发送 LocalTime 对象
Posted
技术标签:
【中文标题】通过 Grails 中 gsp 的参数发送 LocalTime 对象【英文标题】:Send LocalTime object via parameters from gsp in Grails 【发布时间】:2015-07-07 03:55:22 【问题描述】:我在我的 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'
如何正确发送参数?
【问题讨论】:
【参考方案1】:请求中所有数据都是字符串,所以需要解析字符串:
oldCafeeInfo.startTimeLimit = LocalTime.parse(params['startTimeReservation'], format)
格式为 SimpleDateFormat。
或者您可以使用下一个答案,通过绑定自动完成:Binding a Grails date from params in a controller
【讨论】:
【参考方案2】:我找到了自己的选择。我注意到params['startTimeReservation']
以字符串“struct”的形式出现在控制器中。另外,在日志中,我注意到这个结构除以startTimeReservation_hour
和startTimeReservation_minutes
。它们包含整数值,易于解析!然后这些值可以作为参数传输到new LocalTime(hour, minute)
。因此,我们创建了可以记录到数据库的新 LocalTime 实例。不知何故,我怀疑这是一个很好的变体,但它确实有效。
【讨论】:
以上是关于通过 Grails 中 gsp 的参数发送 LocalTime 对象的主要内容,如果未能解决你的问题,请参考以下文章