当前位置: 首页 > 知识库问答 >
问题:

Spring boot能够接受枚举作为请求参数

孙泳
2023-03-14

因此,我进入了这个新的Spring Boot项目,该项目已经在开发中,在编写API时,我在我的控制器中使用了Enum作为RequestParam。

我没有为此编写任何转换器。

后来我注意到,在这个项目中,其他开发人员已经为此编写了自定义转换器。

所以我决定在网上搜索关于这个和所有的解决方案,出现了使用EnumController在Spring Boot中使用的转换器,找不到任何没有转换器的例子,就像我做的那样。

下面是我写这篇文章的一个例子,LoanStatus是一个Enum

@RequestMapping(value = "/loans", method = RequestMethod.GET)
public ResponseEntity<?> getPatientsLoan(HttpServletRequest request,
            @RequestParam(value = "loanStatus", required = false) LoanStatus loanStatus) {}

那么,这是一个相对较新的功能,Spring Boot现在接受枚举,而不需要转换器,这就是为什么所有示例都使用转换器,或者我会在功能方面面临一些问题,因为我没有使用转换器,即使它目前正在为我工作?

共有1个答案

百里疏珂
2023-03-14

自Spring 3.0以来,Spring一直支持StringEnum的转换。有一个ConverterFactory可以为特定枚举动态创建转换器。

在此之前,您需要编写自定义转换器属性编辑器来转换枚举。但基本上对于当前版本,如果String匹配Enum名称,您就不需要这样做。

如果您想要自定义枚举转换(通过某些内部值或其他方式),您仍然需要自定义转换器。

 类似资料:
  • 我是Spring启动的新手,并试图使用枚举作为Rest请求的参数。 这是我的枚举类: 在我的控制器类中,我使用了以下方法: 这是我的JSON: 但它不起作用。。我收到以下错误:

  • 我正在使用spring rest控制器。 这是代码。 如果我使用枚举作为defaultValue我得到注释属性的值Request estParam.defaultValue必须是一个常量表达式。 根据我的理解,它应该接受enum作为默认值。 请给出建议。

  • 本文向大家介绍SpringBoot请求参数接收方式,包括了SpringBoot请求参数接收方式的使用技巧和注意事项,需要的朋友参考一下 application/json接收 x-www-form-urlencoded、?拼接、form-data接收 UserDto 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 在我的MySQL数据库中,有“ gender enum(’male’,’female’)”列 我创建了枚举“ com.mydomain.myapp.enums.Gender”,并在我的实体中定义了“性别”。 现在,我想将枚举类型保留在我的MySQL数据库中,但是当我启动应用程序时,我得到: 性别列在MyApp.Person中的列类型错误。找到:枚举,预期:整数 为什么是这样?这就像我用

  • 我正在尝试使用查询字符串参数调用我的 Azure 代理函数。我不想将我的参数作为路由参数传递,我想使用查询字符串参数来做到这一点,以免破坏我当前的合同。 我的网址如下< code>https:/ 然后我有一些工作正常的静态请求覆盖参数。 最后,我将api称为< code>https:/ 在我的proxies.json中,我有 这似乎是我想要做的唯一方法,但我的回答总是“查询参数丢失或为空”(请注意