scala中的一个文本输入和一个提交按钮

时间:2013-05-08 16:56:31

标签: forms scala textfield

我正在寻找一个解决方案,以完成与此类似问题相同的事情:

HTML forms with java Play Framework 2

但是在斯卡拉。有没有办法做到这一点?我只有一个文本字段和一个提交按钮。我想在按下我的按钮时从文本字段中获取值,并将此值传递给后端代码。

2 个答案:

答案 0 :(得分:5)

object MyController extends Controller {
  val submissionForm = Form(
    single("myvalue" -> text)
  )

  def myaction = TODO //as like @mbarlocker told before
}

在单个输入的这种简单情况下,您不必在表单定义中使用映射,也不必在输入处使用任何模板助手。模板助手很有用,但在这种情况下,您可以自由地进行布局,而无需编写自定义字段构造函数。例如,如果您需要在输入字段旁边放置提交按钮,只需编写如下内容:

@form(routes.Application.myaction, 'class -> "form-inline") {
        <input type="text" id="myvalue" name="myvalue" value="@submissionForm.data.get("myvalue")">
        <input type="submit" class="btn" value="Submit :)">
    }

答案 1 :(得分:3)

基本上,设置视图&amp;形成与HTML forms with java Play Framework 2中相同的方式,然后将其放入您的控制器中。

object MyController extends Controller {
  case class Submission(value: String)
  val submissionForm = Form(
    mapping(
      "value" -> text
    )(Submission.apply)(Submission.unapply)
  )

  def myaction = Action { implicit request =>
    submissionForm.bindFromRequest().fold(
      formWithErrors => {
        // do something with the bad form, like reshow the view
        Ok("got a bad form")
      },
      submission => {
        // do something with the submitted form
        Ok("got " + submission.value)
      }
    )
  }
}

Play 2.1 Forms Documentation