scala✕playframeworkのフォーム
コンパイル時にエラーが見つかる、型を意識したプログラミングをしたいということで今回はscalaを使ったフォームの構築です。
formの入力値を取得して別ページに渡す ○application.scala
play.api.data.Formとplay.api.data.Formsのimportが必要
val form = Form( "hope_date" -> text )
def formSample = Action {
implicit request => val name = form.bindFromRequest.get
Ok(name)
}
前提として、conf/routesに遷移先のrouteを設定しておく。
今回は GET /form_sample controllers.Application.formSampleを追記した。
これでnameがhope_dateのelementからtext型で入力値を受け取れる。
年齢や個数など、数値型として受け取りたい場合は val form = Form("age" -> number)としてやる。 複数のそれぞれ型の違うelementの値を受け取りたい場合は、クラスを作り、それをFormオブジェクトに関連させてやる。 普通はこのやり方で書く。
感想
きちんとtext型としてelementから値を受け取りますよとvalで指定できるところがscalaっぽくて好き。