我正在寻找一种解决方案来完成与这个类似问题相同的事情:
带有 java Play Framework 2 的 HTML 表单
但是在斯卡拉。有没有办法做到这一点?我只有一个文本字段和一个提交按钮。我想在按下按钮时从文本字段中获取值并将该值传递给后端代码。
我正在寻找一种解决方案来完成与这个类似问题相同的事情:
带有 java Play Framework 2 的 HTML 表单
但是在斯卡拉。有没有办法做到这一点?我只有一个文本字段和一个提交按钮。我想在按下按钮时从文本字段中获取值并将该值传递给后端代码。
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 :)">
}
基本上,以与使用 java Play Framework 2的 HTML 表单相同的方式设置视图和表单,然后将其放入您的控制器中。
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)
}
)
}
}