tixture55’s diary

主にプログラミング関係の日記です。

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っぽくて好き。