型別轉換
一些代表基於String的請求輸入(例如@RequestParam、@RequestHeader、@PathVariable、@MatrixVariable和@CookieValue)的帶註解的控制器方法引數,如果引數宣告為String以外的型別,則可能需要型別轉換。
對於這種情況,型別轉換會根據配置的轉換器自動應用。預設情況下,支援簡單型別(int、long、Date等)。您可以透過WebDataBinder(參見DataBinder)或透過向FormattingConversionService註冊Formatters來定製型別轉換。參見Spring 欄位格式化。
型別轉換中的一個實際問題是對空字串源值的處理。如果此類值經型別轉換後變為null,則將其視為缺失。Long、UUID和其他目標型別可能出現這種情況。如果您希望允許注入null,請使用引數註解上的required標誌,或將引數宣告為@Nullable。
|
從 5.3 開始,即使在型別轉換之後,也會強制執行非空引數。如果您的處理程式方法也打算接受空值,請將您的引數宣告為 或者,您也可以專門處理,例如,必需的 |