在提出这个问题之前我找到了这个简洁的帖子(但没有解决我的问题):
我正在尝试使用play框架作为后端使用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获取这些参数?我从firebug获得了有关我的请求的数据
答案 0 :(得分:15)
POST数据在request().body()
的控制器中可用。
在正文上,您可以致电.asFormUrlEncoded()
来检索Map
数据。您可以在documentation。
对于更复杂的用例,您可以使用Form API来定义数据约束和验证,并将数据直接绑定到特定的类。
答案 1 :(得分:1)
改编自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
替换为您的域名有意义的内容。
答案 2 :(得分:0)
您可以获取文件:
val music = request.body.file("music").get
以身体部位为例:
var tracktitle = ""
request.body.dataParts.get("tracktitle").get.foreach(value => tracktitle = value)