類型轉換
一些註解控制器方法引數,表示基於字串的請求輸入(例如,@RequestParam
、@RequestHeader
、@PathVariable
、@MatrixVariable
和 @CookieValue
),如果引數宣告為 String
以外的其他類型,則可能需要類型轉換。
對於這種情況,類型轉換會根據配置的轉換器自動應用。預設情況下,支援簡單類型(例如 int
、long
、Date
等)。類型轉換可以透過 WebDataBinder
(請參閱 DataBinder
)或透過向 FormattingConversionService
註冊 Formatters
(請參閱 Spring 欄位格式化)進行自訂。
類型轉換中的一個實際問題是空字串來源值的處理。如果空字串值由於類型轉換而變成 null
,則會被視為遺失。Long
、UUID
和其他目標類型可能會發生這種情況。如果您想允許注入 null
,請使用引數註解上的 required
標誌,或將引數宣告為 @Nullable
。