def sendform = Action { request =>これで、定数queriesには、送信されたフォームの情報がまとめられたMapが保管されます。このMapから、name, mail, ageのそれぞれの送信情報を取り出します。
val queries = request.body.asFormUrlEncoded
val name_vals = queries.get("name")getメソッドを呼び出すことで、それぞれの値が取り出されました。後はこれらをもとに、メッセージのテキストを作成するだけです。
val mail_vals = queries.get("mail")
val age_vals = queries.get("age")
val msg = "NAME:" + name_vals(0) +Mapから取り出された値は配列の形になっていますから、その最初の値を取り出してまとめています。基本的な流れさえわかれば、意外と簡単ですね?
", MAIL:" + mail_vals(0) +
", AGE:" + age_vals(0)
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
●Applicationクラスに追加するメソッド def form = Action { val title = "フォーム・サンプル" val msg = "名前・メール・年齢を入力ください。" Ok(views.html.index(title, msg)) } def sendform = Action { request => val queries = request.body.asFormUrlEncoded val name_vals = queries.get("name") val mail_vals = queries.get("mail") val age_vals = queries.get("age") val msg = "NAME:" + name_vals(0) + ", MAIL:" + mail_vals(0) + ", AGE:" + age_vals(0) val title ="フォーム・サンプル" Ok(views.html.index(title, msg)) } ●index.scala.htmlの修正 @(title: String, message: String) @main(title) { @main(message){ <h1>@title</h1> <p>@message</p> <hr> <form method="post" action="/sendform"> <input type="text" id="name" name="name"><br> <input type="text" id="mail" name="mail"><br> <input type="text" id="age" name="age"><br> <input type="submit"> </form> } } ●routesへの追記 GET /form controllers.Application.form POST /sendform controllers.Application.sendform
<< 前へ | 次へ >> |