型別轉換
某些代表基於字串的請求輸入的註解控制器方法引數 (例如 @RequestParam
、@RequestHeader
、@PathVariable
、@MatrixVariable
和 @CookieValue
) ,如果引數宣告為字串以外的型別,則可能需要型別轉換。
在這種情況下,型別轉換會根據已設定的轉換器自動套用。預設情況下,支援簡單型別 (int
、long
、Date
等)。您可以使用 WebDataBinder
(請參閱 DataBinder
) 或透過向 FormattingConversionService
註冊 Formatter
來客製化型別轉換。請參閱 Spring 欄位格式化。
型別轉換中的一個實際問題是如何處理空的字串來源值。如果此值因型別轉換而變成 null
,則會將其視為遺失。Long
、UUID
和其他目標型別可能會發生這種情況。如果您想要允許注入 null
,請使用引數註解上的 required
旗標,或將引數宣告為 @Nullable
。
從 5.3 版開始,即使在型別轉換之後,也會強制執行非 null 引數。如果您的處理常式方法也打算接受 null 值,請將您的引數宣告為 或者,您可以特別處理,例如,在需要 |