Play Framework 2.1 Scala - 表单绑定日期

时间:2012-12-19 13:38:24

标签: forms scala playframework-2.0 playframework-2.1

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

2 个答案:

答案 0 :(得分:9)

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

在客户端处理后,服务器端Play 2.1支持JodaTime,因此您可以像这样绑定帖子的表单日期:

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 )
}

答案 1 :(得分:1)

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

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

Play也需要在生成表单时生成正确的日期字符串表示,该表单将被发送到视图(控制器 - >视图)。在 java 中,可以提供DataBinder

可以在issue opened on GitHub

中找到此示例