通过 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_hourstartTimeReservation_minutes。它们包含整数值,易于解析!然后这些值可以作为参数传输到new LocalTime(hour, minute)。因此,我们创建了可以记录到数据库的新 LocalTime 实例。不知何故,我怀疑这是一个很好的变体,但它确实有效。

【讨论】:

以上是关于通过 Grails 中 gsp 的参数发送 LocalTime 对象的主要内容,如果未能解决你的问题,请参考以下文章

如何在 grails messages.properties 中使用 HTML 进行邮件发送

从 grails 中的 gsp 页面进行 ajax 调用

Tomcat中的Grails请求参数编码问题

如何从 gsp 调用 Grails 服务?

Grails 2.x提交带有其他参数的表单

Grails:如何消除 create.gsp 和 save.gsp 并将其移动到 list.gsp 中列表的第一行?