Playframework 如何使用Play在GET请求中路由map-like参数
我必须在我的游戏应用程序中处理以下GET请求Playframework 如何使用Play在GET请求中路由map-like参数,playframework,playframework-2.0,Playframework,Playframework 2.0,我必须在我的游戏应用程序中处理以下GET请求 http://host/somemethod?queries[search]=asdf&perPage=100&sorts[name]=0 现在,通常会收到如下请求: http://host/somemethod?queries=asdf&perPage=100&sorts=0 可以很容易地处理 GET /somemethod controllers.SomeMethodControlle
http://host/somemethod?queries[search]=asdf&perPage=100&sorts[name]=0
现在,通常会收到如下请求:
http://host/somemethod?queries=asdf&perPage=100&sorts=0
可以很容易地处理
GET /somemethod controllers.SomeMethodController.getPeople(queries:String ?= "", perPage: Int ?= 10, sorts:String ?= "")
但是像:查询[search]=asdf
或排序[name]=0
这样的参数没有正确解析
(尝试了简单的String
类型、Seq[String]
或Map[String,String]
-最后一个引发有关缺少QueryStringBinder
的异常)
如何将这些查询参数映射到具有播放路由的方法参数?我是否需要创建自己的自定义
QueryStringBinder
?您的假设是正确的。默认的QueryString绑定器不支持映射,因此您应该实现自己的QueryStringBindable
。应该给您一个如何实现它的提示
Play 2.x支持以下查询字符串参数类型:
- 串
- 煤焦
- Int
- 整数(Java)
- 长(Scala和Java)
- Double(Scala和Java)
- 浮点(Scala和Java)
- 布尔(Scala和Java)
- java.util.UUID
- 选择权
- 可选(Java)
- 序号
- 列表(Scala和Java)
- 排列