mgu*_*mon 38 playframework-2.0
有没有办法访问所有请求参数,无论HTTP方法如何?我没有在Play Framework 2.0中找到方法,而是倾倒了文档和api.
我在一个接受POST和GET的网站上搜索.站点上的自定义跟踪会检查传入的所有参数,以确定存储跟踪数据的正确方法.
在Play Framework 1.2.x中,我能够从Controller中的请求访问参数
request.params.get("keywords")
request.params.get("location")
request.params.all()
Run Code Online (Sandbox Code Playgroud)
使用Play Framework 2.0,情况已不再如此.该请求不再有方法params,只有queryString和查询字符串只适用于GET和POST没有.
将每个可能的跟踪参数定义到Controller Action中是不可行的,它们是动态的.
更新:可能的解决方法是使用Body Parsers.
根据请求的内容类型,使用适当的解析器,例如application/form-url-encoded与application/json
这是结合POST参数和GET参数的原始Map,GET参数优先.
val params: collection.mutable.Map[String, Seq[String]] = collection.mutable.Map()
params ++= request.body.asFormUrlEncoded.getOrElse[Map[String, Seq[String]]] { Map.empty }
params ++= request.queryString
Run Code Online (Sandbox Code Playgroud)
小智 9
Play 2.0文档没有很好地解释这一点.身体解析器是一个可接受的解决方案,但我发现DynamicForm它更轻巧,用户友好.
文档可以在这里找到.
特别是,DynamicForm.bindFromRequest()如果您尝试更换旧的Play 1.0 ,这是一个很好的起点request.params.get().
| 归档时间: |
|
| 查看次数: |
10879 次 |
| 最近记录: |