因此,我进入了这个正在开发中的新Spring Boot项目,在编写API的过程中,我在控制器中使用Enum
来代替@RequestParam
,
我没有为此编写任何转换器。
稍后,我注意到在这个项目中,其他开发人员为此编写了自定义Converter。
因此,我决定在网上搜索有关此内容的信息,以及所有在Spring Boot中使用Enum
和Controller
的转换器所使用的解决方案,没有像我这样的转换器,找不到任何示例。 / p>
下面是我如何编写此示例的一个示例,LoanStatus
是Enum
:
@RequestMapping(value = "/loans", method = RequestMethod.GET)
public ResponseEntity<?> getPatientsLoan(HttpServletRequest request,
@RequestParam(value = "loanStatus", required = false) LoanStatus loanStatus) {}
这是Spring Boot现在接受Enums
而不需要转换器的一项相对较新的功能,这就是为什么所有示例都使用转换器的原因,或者我将在功能方面遇到一些问题的原因,即使我没有使用用户转换器,目前正在为我工作吗?
答案 0 :(得分:1)
从Spring 3.0开始,Spring支持从String
到Enum
的转换。有一个ConverterFactory
可以为特定的枚举动态创建一个转换器。
在此之前,您需要编写自定义Converter
或PropertyEditor
来转换枚举。但基本上,对于当前版本,如果String
与Enum
匹配,则不需要。
如果要自定义枚举转换(通过某个内部值或其他值),则仍然需要自定义转换器。