Grails 时间选择器

标签 grails grails-2.0

我需要将(oracle)数据库中的日期时间保存在一列中,它是时间戳的sqlType(看起来像01-JAN-14 12.00.00.000000 AM)。在学习 grails 时,我一直在使用 Joda lib 和它的“时间选择器”。

Joda timepicker 运行良好,但现在我想去黄金时段,我正在寻找对用户更友好的东西。坦率地说,文本框可能比 joda 给你的下拉菜单更友好。

无论如何,我想删除 joda 并使用这样的东西:

http://trentrichardson.com/examples/timepicker/

但我不知道如何在 grails 中实现它。在我看来,如果我说:

<input type="text" name="endDate" id="endDate" value="${exampleInstance?.endDate}" />

代替 g:datePicker,它工作正常(即选择器),除了没有任何内容保存到数据库中,也没有生成错误。我点击保存,显示 View 出现一个空的 endDate 字段。我需要更多输入标签吗?

是否有一些简单的方法可以实现我错过的现代外观的日期+时间选择器?

此外,我在这里看到了这个选择器的插件

http://grails.org/plugin/jquery-ui-timepicker

但由于没有任何文档,我也不确定如何使用它 (?)

回答

在 Controller 保存/更新中放一些类似的东西:

def endDate = params.date('endDate', 'yy-MM-dd h:mm')
//println "Date from Picker was "+endDate
params.endDate = endDate

不需要进一步转换,因为它最终可以将日期选择器控件格式化为与数据库中的格式非常接近的格式,但是如果我需要从一种奇怪的格式或字符串转换为另一种格式,我玩弄了使用这段代码,它比我在整个过程中思考的任何东西都更伪(我确信有一种完全 Groovy 的方式来做同样的事情):

SimpleDateFormat inputFormat  = new SimpleDateFormat("yy-MM-dd HH:mm:ss.S");
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yy h.mm.ss.S a");
def v = params.endDate
Date date = inputFormat.parse(v);
String temp = sdf.format(date)
Date dateOut = sdf.parse(temp)

println dateOut 

最佳答案

日期选择器是您的 UI 组件,因此您可以拥有任何您希望用于 UI 的库和任何其他用于后端的库。大多数情况下,如果它们提供一点文档,它们很容易实现!!

您提供链接的 jQuery ui 插件的时间选择器公开了一个名为 jqueryUiTimePicker 的资源,它依赖于 jQuery 和 jQuery-ui。因此,只需将此资源包含到您的资源配置中,您就应该能够使用它。它与定义您自己的资源并使用它没有什么不同。

关于您遇到的保存问题,在您的保存传递参数 failOnError:true 中,这样您就可以看到错误(如果有)。

我创建了一个 sample使用此插件的项目希望对您有所帮助

关于Grails 时间选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22103475/

相关文章:

grails - Windows上的Grails/aNimble:获取找不到指定的路径

Grails 中的 jquery TreeView

postgresql - 在 Grails/GORM/PostgreSQL 中表示 UTM 坐标并使用它们的正确方法

grails - 外部化test.datasource的配置

grails - 编译的 GSP 页面是否与上下文路径相关联?

具有相同名称但在不同包中的 Grails Controller

unit-testing - 由于错误,无法测试我的 grails 应用程序

java - 如何发布数据库更新?

grails - 如何在GSP页面中以不同的样式显示不同的flash.message

grails - Grails邮件插件出现问题,连接被拒绝:connect