类型转换
某些注解控制器方法参数表示基于String的请求输入(例如@RequestParam、@RequestHeader、@PathVariable、@MatrixVariable和@CookieValue),如果声明的参数类型不是String,可能需要类型转换。
对于此类情况,将根据配置的转换器自动应用类型转换。
默认情况下,支持简单类型(int、long、Date等)。您可以通过 WebDataBinder(参见 DataBinder) 或通过向 FormattingConversionService 注册 Formatters 来自定义类型转换。
请参见 Spring 字段格式化。
类型转换中的一个实际问题是空字符串源值的处理。
如果类型转换后变为null,则该值被视为缺失。
对于Long、UUID和其他目标类型可能会出现这种情况。如果希望允许null
注入,请在参数注解上使用required标志,或把参数声明为@Nullable。
|
从 5.3 版本开始,即使在类型转换后,非空参数也将被强制执行。如果您希望处理方法也接受 null 值,请将您的参数声明为 或者,您可以特别处理例如在需要 |