我想创建一个简单的辅助函数,它将根据发布的表单的键返回一个Option [String]。
目前我这样做:
(request.body.asFormUrlEncoded.get("key1")(0))
我想创建一个返回Option [String]的函数,如果需要,我可以将其转换为Int或Boolean。
答案 0 :(得分:1)
访问(0)
会冒NullPointerException
或IndexOutOfBoundsException
的风险。
如何在控制器中声明此方法:
def findKey(key:String)(implicit request:Request[AnyContent]):Option[String] = {
request.body.asFormUrlEncoded.flatMap { form =>
form.get(key).flatMap { values =>
values.headOption
}
}
}
然后你可以在你的处理函数中使用得非常整洁:
def workWithFormFields = Action.async { implicit request =>
val maybeKey1:Option[String] = findKey("key1")
...
}