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