2

日付/時刻フィールドを持つフォーム用に、PlayFramework2.1でフォームバインディングを作成したいと思います。日付/時刻入力用の標準ベリファイアはありますか?ページフォームも特定の形式で日付/時刻を送信する必要があることを理解しています。そのためのプレハブソリューションを知っている人はいますか?または、自分で実装する方法を説明できますか?

4

2 に答える 2

9

Play 2.1 には、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 )
}
于 2012-12-19T13:55:10.830 に答える
1

@virtualeyes が言ったように、クライアント側からは、DatePickerは正しいデータ形式 (デフォルトでは dd/MM/yyyy) を生成します。

bindFronRequestただし、Play Framework は(client -> server)を使用して Date 形式を正しくアンマーシャルする必要があり ます。

また、Play はフォームを生成するときに正しい日付文字列表現を生成する必要があり、これはビュー (コントローラー -> ビュー) に送信されます。Javaでは、これはDataBinderを提供することで実行できます。

この例は、GitHub で公開されている問題に記載されています。

于 2014-07-18T15:18:00.163 に答える