2

我想在 Play Framework 2.1 中为具有日期/时间字段的表单创建一个表单绑定。是否有日期/时间输入的标准验证器?我了解页面表单还应该以特定格式发送日期/时间。有谁知道任何预制解决方案?或者可以描述如何自己实现一个?

4

2 回答 2

9

Play 2.1内置了对 Twitter Bootstrap 的支持;如果您采用该路线,那么Bootstrap Date Picker对客户端来说是一个很好的调用(即确保日期以yyyy-mm-dd或其他有效日期格式发送)。

照顾好客户端后,服务器端 Play 2.1 支持JodaTime,因此您可以像这样绑定 post'd 表单日期:

object FooForm {
  import play.api.data.{Form, Forms}, Forms._
  val mapper = mapping(
    'fooDate-> jodaDate("yyyy-MM-dd")
  )(Foo.apply)(Foo.unapply)
  val form = Form( mapper )
}
于 2012-12-19T13:55:10.830 回答
1

就像@virtualeyes 所说,从客户端,DatePicker将生成正确的数据格式(默认为 dd/MM/yyyy)。

但是,Play 框架需要使用 bindFronRequest(客户端 -> 服务器)正确解组日期格式。

另外Play在生成Form的时候需要生成正确的Date字符串表示,会被发送到视图(控制器->视图)。在java中,这可以通过提供DataBinder来完成。

可以在 GitHub 上打开的那个问题中找到一个示例

于 2014-07-18T15:18:00.163 回答