此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.2.0! |
类型转换
一些带注释的控制器方法参数,它们表示String
-基于请求的输入(例如@RequestParam
,@RequestHeader
,@PathVariable
,@MatrixVariable
和@CookieValue
)
如果参数声明为String
.
对于此类情况,将根据配置的转换器自动应用类型转换。
默认情况下,简单类型 (int
,long
,Date
等)支持。您可以自定义
类型转换WebDataBinder
(参见DataBinder
) 或通过注册Formatters
使用FormattingConversionService
.
参见 Spring Field Formatting。
类型转换中的一个实际问题是空 String 源值的处理。
如果该值变为null
作为类型转换的结果。
这可能是这种情况Long
,UUID
和其他目标类型。如果要允许null
要注入,请使用required
flag 的 Token,或声明
参数设置为@Nullable
.
从 5.3 开始,即使在类型转换之后,也会强制使用非 null 参数。如果您的处理程序
方法也打算接受 null 值,请将您的参数声明为 或者,您可以专门处理例如生成的 |