使用 Get 方法 @QueryParam 将枚举列表传递给 Spring REST
Passing a List of Enum to Spring REST using Get method @QueryParam
我正在使用 Spring,我需要使用 GET METHOD 传递一个由枚举值组成的列表。是否可以将 @QueryParam 用于 List ?如果是,那么我们如何以及如何通过 url 发送它。
我使用@QueryParam List enumValues 并通过url 发送数据作为enumValues=value1&enumVales=value2。
但我收到以下错误:
org.springframework.beans.BeanInstantiationException: 实例化失败 [java.util.List]: 指定 class 是接口
请帮忙!
您遇到此问题是因为您将 JAX-RS 注释 @QueryParam
与 spring 一起使用。 Spring不符合JAX-RS框架,完全是两个不同的MVC框架。如果你宁愿使用 Spring 注释 @RequestParam
,配置很简单,它会为你创建枚举列表:
- Your query parameters will look like this:
enumValues=value1&enumVales=value2
- Your spring RequestMapping will look like:
@RequestParam(value="enumValues")List<EnumValues> enumValues
我正在使用 Spring,我需要使用 GET METHOD 传递一个由枚举值组成的列表。是否可以将 @QueryParam 用于 List ?如果是,那么我们如何以及如何通过 url 发送它。
我使用@QueryParam List enumValues 并通过url 发送数据作为enumValues=value1&enumVales=value2。
但我收到以下错误:
org.springframework.beans.BeanInstantiationException: 实例化失败 [java.util.List]: 指定 class 是接口
请帮忙!
您遇到此问题是因为您将 JAX-RS 注释 @QueryParam
与 spring 一起使用。 Spring不符合JAX-RS框架,完全是两个不同的MVC框架。如果你宁愿使用 Spring 注释 @RequestParam
,配置很简单,它会为你创建枚举列表:
- Your query parameters will look like this:
enumValues=value1&enumVales=value2
- Your spring RequestMapping will look like:
@RequestParam(value="enumValues")List<EnumValues> enumValues