6

こんにちは、私は scala play フレームワークの初心者です。2 つ以上の入力があるフォームを作成できません。私はそれをグーグルで検索しましたが、scala プログラミング言語には何も見つかりませんでした。scala を使用してフォームに複数の入力を作成する方法に関するアイデアを教えてください。これは私がしました

val form = Form (tuple
    (
"firstname"-> text,
"lastname" -> text
)
)  and to get the values val(fname,lname) = form.bindFromRequest.get

私は正しい方法に従っていますか?scala play framework を学ぶためのアイデアやリソースを教えてください。前もって感謝します

4

2 に答える 2

26

Play 2.1.1 の完全な (しかし単純な) フォームの例を次に示します。ビュー、コントローラー、およびルートファイルを含みます。インポートや暗黙のリクエストが欠落していると思われます。どちらも分かりやすいでしょう!

コントローラー (Application.scala):

package controllers

import play.api._
import play.api.mvc._
import play.api.data._
import play.api.data.Forms._

object Application extends Controller {
  val form = Form(
    tuple(
      "firstname" -> text,
      "lastname" -> text
    )
  )

  def index = Action {
    Ok(views.html.index())
  }

  def submit = Action { implicit request =>
    val (fname, lname) = form.bindFromRequest.get
    Ok("Hi %s %s".format(fname, lname))
  }
}

ビュー (index.scala.html):

<!DOCTYPE html>
<html>
  <head>
    <title>Form example</title>
  </head>
  <body>
    <form method="post" autocomplete="on">
      First name:<input type="text" name="firstname"><br>
      Last name: <input type="text" name="lastname"><br>
      <input type="submit">
    </form>
  </body>
</html>

そしてルート:

GET     /                           controllers.Application.index
POST    /                           controllers.Application.submit

注意: HTML ビューの name 属性は、コントローラー フォームの文字列リテラルと一致する必要があります。

それが役立つことを願っています。

于 2013-05-31T17:46:33.143 に答える