Scala中的表单播放框架

sha*_*ank 5 scala playframework-2.0

你好,我是scala play框架的初学者.我无法创建具有两个或更多输入的表单.我用Google搜索并在scala编程语言中找不到它.请建议我如何使用scala在表单中创建多个输入.我这样做了

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

我是按照正确的方式.请建议我学习scala play框架的任何想法或资源.提前致谢

Mat*_*rts 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))
  }
}
Run Code Online (Sandbox Code Playgroud)

视图(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>
Run Code Online (Sandbox Code Playgroud)

路线:

GET     /                           controllers.Application.index
POST    /                           controllers.Application.submit
Run Code Online (Sandbox Code Playgroud)

注意:HTML视图中的名称属性必须与控制器表单中的字符串文字匹配.

希望有所帮助.