gpt4 book ai didi

playframework - 如何使用 Play 在 GET 请求中路由类似 map 的参数

转载 作者:行者123 更新时间:2023-12-04 06:17:51 27 4
gpt4 key购买 nike

我必须在我的 Play 应用程序中处理以下 GET 请求,例如。

http://host/somemethod?queries[search]=asdf&perPage=100&sorts[name]=0 

现在,通常 GET 请求如下:

http://host/somemethod?queries=asdf&perPage=100&sorts=0

可以很容易地用 eg 处理。

GET         /somemethod     controllers.SomeMethodController.getPeople(queries:String ?= "", perPage: Int ?= 10, sorts:String ?= "")

但参数如:queries[search]=asdfsorts[name]=0 没有正确解析(尝试了简单的 String 类型、Seq[String]Map[String,String] - 最后一个抛出关于缺少 QueryStringBinder 的异常)

如何使用 Play 路由将这些查询参数映射到方法参数?我是否需要创建自己的自定义 QueryStringBinder

最佳答案

你的假设是正确的。默认的 QueryString Binder 不支持映射,因此您应该实现自己的 QueryStringBindableJavadoc of QueryStringBindable应该给你一个如何实现它的提示。

Play 2.x 支持以下查询字符串参数类型:

  • 字符串
  • 查尔
  • 国际
  • 整数(Java)
  • 长(Scala 和 Java)
  • 双学位(Scala 和 Java)
  • float (Scala 和 Java)
  • bool (Scala 和 Java)
  • java.util.UUID
  • 选项
  • 可选(Java)
  • 顺序
  • 列表(Scala 和 Java)
  • 数组

参见 Binders.scala对于所有支持的类型。

关于playframework - 如何使用 Play 在 GET 请求中路由类似 map 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31684919/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com