2013-08-27 55 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)