当前位置: 首页 > 面试题库 >

在Jersey处理多个查询参数

淳于哲
2023-03-14
问题内容

在我正在使用的Web服务中,我需要使用查询参数来实现一个URI,如下所示: /stats?store=A&store=B&item=C&item=D

要对其进行分解,我需要能够使用查询参数来指定多个/所有商店中的数据以及这些商店中多个/所有项目的数据。到目前为止,我已经能够很好地实现一个查询参数以提取项目数据,但是我对如何实现更多查询一无所知,而且似乎找不到我之前所见过的资源。通过此实现。

到目前为止,我所采用的方法是

@GET
@Path("stats")
public String methodImCalling(@DefaultValue("All") @QueryParam(value = "item") final String item)
{
    /**Run data using item as variable**/
    return someStringOfData
}

这对于一项很有效,如果我不在URI中键入参数,它将返回所有数据。但是,我不确定如何处理比这更多的参数。

更新

我已经想出了如何通过简单地向方法中添加第二个参数来使用2个不同的参数,如下所示:

public String methodImCalling(@DefaultValue("All") @QueryParam(value = "store") final String store,
    @DefaultValue("All") @QueryParam(value = "item") final String item)

问题仍然在于如何实现同一参数的多个值。


问题答案:

如果将item方法参数的类型从String更改为List<String>,例如,,则应该获得一个包含所有要查找的值的集合。

@GET
@Path("/foo")
@Produces("text/plain")
public String methodImCalling(@DefaultValue("All") 
                              @QueryParam(value = "item") 
                              final List<String> item) {
   return "values are " + item;
}

JAX-RS规范(第3.2节)对@QueryParam注释进行了以下说明:

支持以下类型:

  1. 基本类型
  2. 具有接受单个String参数的构造函数的类型。
  3. valueOf具有使用单个String参数命名的静态方法的类型。
  4. List<T>Set<T>,或SortedSet<T>其中_T_ 满足2或3以上。



 类似资料:
  • 问题内容: 我是事件/回调样式编程和NodeJS的新手。我正在尝试实现一个小的http服务器,它使用node-mysql模块来提供ddbb数据。 我的问题来自查询结构。由于经常有一些查询需要运行先前查询的结果,因此我无法同时(异步)运行所有查询,因此不得不等待一些结果。 我的第一种方法是同时运行所有非依赖性查询,然后循环运行,直到所有非依赖性查询都设置了一个标志,说我已经完成,这样我就可以继续处理

  • 我想知道EXPRESS如何解析同名的多个查询参数;我在任何地方都找不到任何有用的参考资料。我想具体了解EXPRESS,它将如何处理这个URL

  • 问题内容: 服务类具有一个接受多个参数的操作。这些参数作为查询参数传递给服务调用。 这些参数的列表正在增长,因此我想将它们放入包含所有这些参数的单个bean中。 你会怎么做?这有可能吗? 问题答案: 您可以使用。 在您的资源中,您只需要使用。 提供者将被自动调用。

  • 我正在使用 swagger(1.2) 来记录我的球衣 jaxrs (2.1) api。我使用 swagger-ui 来显示我的 api。对于 http GET 请求,我在 api endpoint中有一个查询参数作为 @QueryParam(“token”)。Swagger 正在显示此查询参数的字段,但是当我每次收到它的空值时单击“尝试一下!”按钮时。 我还用@ApiParam注释了@ query

  • 正如上面所看到的那样,在您的查询中处理参数,您只需定义方法参数。除了基本的还要识别某些特别的类型像Pageable和Sort这些在你的查询中提供动态的分页和排序。 示例9。使用Pageable,Slice和Sort在查询方法中 Page<User> findByLastname(String lastname, Pageable pageable); Slice

  • 我可以查询以检索 然后,我可以查询表以获得作业执行的全部详细信息。