menu
書いてる野郎
orebike@gmail.com
2.3 と 2.4で微妙に書き方が違う
これは Controller に用意する。
object Hoge extends Controller { val hogeForm = Form( "name" -> text ) }
name
というキーでパラメータを受けることにする。
object Hoge extends Controller { // ...... def piyo = Action { implicit request => Ok("piyo " + hogeForm.bindFromRequest().get) } // ...... }
QueryString でパラメータを渡すということで
GET /hoge/piyo controllers.Hoge.piyo
とする。メソッドの呼び出し側に引数の設定が無いということに注目
http://localhost:9000/hoge/piyo?name=aaa
piyo aaa
動いた。
基本ではオブジェクトで受けたが受けようの型を用意する
object Hoge extends Controller { // ...... case class MyForm(name:String, age:Int) // ...... }
Scala/クラス 参照。Scala はバリューオブジェクト用のクラスを簡素に書くことが出来る
case class MyForm(name:String, age:Int) val myForm = Form( mapping( "name" -> text, "age" -> number )(MyForm.apply)(MyForm.unapply))
各 property と名前を揃えて書く。ケツの apply と unapply は定型文なのでおまじないとしていいだろう。
routes は特に何も必要ない
def piyo = Action { implicit request => val f = myForm.bindFromRequest().get Ok("piyo " + f.name + " " + f.age) }
http://localhost:9000/hoge/piyo?name=aaa&age=123
piyo aaa 123
OK