11

在问这个问题之前我发现了这篇简洁的帖子(但没有解决我的问题):

我正在尝试使用播放框架作为后端通过 ajax 调用更新记录。

以下是关于我的请求的一些数据:

Request URL:http://172.20.12.50:9000/updateName
Request Method:PUT

Form Data
name=&value=Testttt&pk=367

在此处输入图像描述

这是我尝试测试在服务器端得到的结果的方法:

Logger.info("PK IS " + request().getQueryString("pk"));

这是我在日志中得到的:

[info] application - PK IS null

我如何从 FormData 中获取这些参数?我从萤火虫那里得到了关于我的请求的数据

4

3 回答 3

15

POST 数据在带有request().body().

在正文上,您可以调用.asFormUrlEncoded()以检索Map数据。您将在文档中找到更多信息。

对于更复杂的用例,您可以使用Form API来定义数据约束和验证,并将数据直接绑定到特定类。

于 2013-08-27T16:11:12.420 回答
2

改编自http://www.playframework.com/documentation/2.0/ScalaForms

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

case class MyFormData(name: Option[String], value: String, pk: Long)

val myForm = Form(
    mapping(
        "name" -> optional(text),
        "value" -> text,
        "pk" -> number
    )(MyFormData.apply)(MyFormData.unapply)
)

myForm.bindFromRequest.fold(
    formWithErrors => // binding failure, you retrieve the form containing errors,
    value => // binding success, you get the MyFormData value 
)

显然替代MyFormData对您的领域有意义的东西。

于 2013-08-27T16:22:22.340 回答
0

你可以得到它的文件:

val music = request.body.file("music").get

以身体部位为例:

var tracktitle = ""
        request.body.dataParts.get("tracktitle").get.foreach(value => tracktitle = value)
于 2013-08-29T10:15:49.477 回答