Mam trasę typu "POST". Wysyłam dane postów na stronę. Jak uzyskać dostęp do danych wpisu. Na przykład w PHP używasz $ _POSTJak uzyskać dostęp do danych postów z gry scala?
Jak uzyskać dostęp do danych wpisu w scala i strukturze gry?
Mam trasę typu "POST". Wysyłam dane postów na stronę. Jak uzyskać dostęp do danych wpisu. Na przykład w PHP używasz $ _POSTJak uzyskać dostęp do danych postów z gry scala?
Jak uzyskać dostęp do danych wpisu w scala i strukturze gry?
Tu masz dobrą próbkę, jak to się robi w Play:
val loginForm = Form(
tuple(
"email" -> text,
"password" -> text
) verifying ("Invalid email or password", result => result match {
case (email, password) => User.authenticate(email, password).isDefined
})
)
/**
* Handle login form submission.
*/
def authenticate = Action { implicit request =>
loginForm.bindFromRequest.fold(
formWithErrors => BadRequest(html.login(formWithErrors)),
user => Redirect(routes.Projects.index).withSession("email" -> user._1)
)
}
Jest opisany w dokumentacji forms submission
jak @Marcus wskazuje bindFromRequest jest preferowane podejście. W przypadku prostych jednorazowych przypadków jednak pole
<input name="foo" type="text" value="1">
można uzyskać za pośrednictwem formularza post'd jak tak
val test = Action { implicit request =>
val maybeFoo = request.body.get("foo") // returns an Option[String]
maybeFoo map {_.toInt} getOrElse 0
}
As of Play 2.1, istnieją dwa sposoby, aby dostać się na parametrach postu:
1) zgłasza ciała jako forma urlencoded za pomocą parametru działania parsera, w którym to przypadku request.body automatycznie przekształca się w mapie [String Seq [String]]:
def test = Action(parse.tolerantFormUrlEncoded) { request =>
val paramVal = request.body.get("param").map(_.head)
}
2) Poprzez wywołanie request.body.asFormUrlEncoded uzyskać Mapa [ciąg, SEK [String]]:
def test = Action { request =>
val paramVal = request.body.asFormUrlEncoded.get("param").map(_.head)
}
Tu masz dobrą próbkę jak to się robi w Play 2:
def test = Action(parse.tolerantFormUrlEncoded) { request =>
val paramVal = request.body.get("param").map(_.head).getorElse("");
}
'Błąd kompilacji [wartość get nie jest członkiem play.api.mvc.AnyContent]'? – Meekohi
Spróbuj 'request.body.asFormUrlEncoded.get (" foo "). Lift (0)' - Wydawało mi się, że otrzymuję 'ArrayBuffer' i' lift (0) 'zwraca' Opcja' elementu, który zawiera – Techmag