Sunday 15 September 2013

scala - Playframework POST parameter -



scala - Playframework POST parameter -

i'm trying go simple playframework scala (2.3): create route post , post parameters.

the route definition

post /ff/user controllers.application.createuser

the controller

def createuser = action.async { request => val user = request.querystring.get("user").flatmap(_.headoption) val email = request.querystring.get("email").flatmap(_.headoption) val firstname = request.querystring.get("firstname").flatmap(_.headoption) val lastname = request.querystring.get("lastname").flatmap(_.headoption) logger.debug("create user") logger.debug(s"user=$user") logger.debug(s"email=$email") ok("youpi") }

when post request /ff/user, log says : user=none, email=none. cannot figure out why "none". wrong?

thank helping.

when using post this, want @ body field on request parameter, contain form posted. don't utilize query string post requests (more here). so, might like:

def createuser = action.async { request => val user = request.body.asformurlencoded.get.get("user").head future(ok()) }

you might want utilize action.async overload provides parsed body. example, might like:

def createuser = action.async(parse.urlformencoded) { request => //body treated map[string, seq[string]] because of parameter passed async val user = request.body("user").head future(ok()) }

scala playframework

No comments:

Post a Comment