2013-08-27 30 views
9

我发现这个职位整齐问这个问题之前(但不解决我的问题):在游戏框架如何获得表单数据

我试图用游戏框架的更新与Ajax调用记录后端。

这是对我的要求的一些数据:

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

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

enter image description here

这里是我尝试测试我所得到的在服务器端:

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

这是我获得在日志中:

[info] application - PK IS null 

如何从FormData中获取这些参数?我得到这个数据与从萤火

回答

13

我的请求,POST数据可与request().body()控制器。

在正文上,您可以拨打.asFormUrlEncoded()来检索Map的数据。您将在documentation中找到更多信息。

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

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为您的域名有意义的事。

0

你可以得到它的文件:

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

身体各部位为例:

var tracktitle = "" 
     request.body.dataParts.get("tracktitle").get.foreach(value => tracktitle = value)