首页 > 解决方案 > 使用 Get 方法 @QueryParam 将枚举列表传递给 Spring REST

问题描述

我正在使用 Spring,我需要使用 GET 方法传递一个包含枚举值的列表。是否可以将 @QueryParam 用于 List ?如果是,那么我们如何以及如何通过 url 发送它。

我使用@QueryParam List enumValues 并通过 url 作为 enumValues=value1&enumVales=value2 发送数据。

但我收到以下错误:

org.springframework.beans.BeanInstantiationException:无法实例化[java.util.List]:指定的类是一个接口

请帮忙!

标签: springlistenumsgetqueryparam

解决方案


您正面临这个问题,因为您正在使用@QueryParam带有 spring 的 JAX-RS 注释。Spring 不符合 JAX-RS 框架,它们是完全不同的两个 MVC 框架。如果你更喜欢使用 Spring annotation @RequestParam,配置很简单,它会为你创建 Enum 列表:

  • 您的查询参数将如下所示:enumValues=value1&enumVales=value2
  • 您的春季 RequestMapping 将如下所示:@RequestParam(value="enumValues")List<EnumValues> enumValues

推荐阅读