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