gpt4 book ai didi

java - Spring boot 能够接受 Enum 作为请求参数

转载 作者:行者123 更新时间:2023-11-30 05:42:47 25 4
gpt4 key购买 nike

所以,我进入了这个新的 Spring Boot 项目,该项目已经在开发中,在编写 API 时,我在 Controller 中使用了 Enum 来表示 @RequestParam 并且它起作用了。

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

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

因此,我决定在网上搜索有关此问题的信息以及在 Spring Boot 中使用转换器使用 EnumController 的所有解决方案,找不到任何没有转换器的示例就像我做的那样。

下面是我如何编写此代码的一个示例,LoanStatus 是一个 Enum:

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

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

最佳答案

Spring 从 Spring 3.0 开始支持 StringEnum 的转换。有一个ConverterFactory它动态地为特定枚举创建一个转换器。

在此之前,您需要编写自定义ConverterPropertyEditor 来转换枚举。但基本上在当前版本中,如果 StringEnum 名称匹配,则不需要这样做。

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

关于java - Spring boot 能够接受 Enum 作为请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55372117/

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