Spring 定義了 3 種類型的轉換器接口,實作任意一個轉換器接口都可以作為自定義轉換器注冊到 ConversionServiceFactoryBean 中:
Converter<S,T>:将 S 類型對象轉為 T 類型對象;
ConverterFactory:将相同系列多個 “同質” Converter 封裝在一起。如果希望将一種類型的對象轉換為另一種類型及其子類的對象(例如将 String 轉換為 Number 及 Number 子類(Integer、Long、Double 等)對象)可使用該轉換器工廠類;
GenericConverter:會根據源類對象及目标類對象所在的宿主類中的上下文資訊進行類型轉換。
舉個例子來實作下自定義轉換器:
例如Employee對象,現在在頁面送出的時候内容是“zhangsan,[email protected],1,101”,需要轉化為Employee對象進行儲存。
首先先看Employee對象:
“zhangsan”賦給lastName;
“[email protected]”賦給email;
“1”給gender;
“101”給Department ;
再看下Department的結構:
上面的JavaBean省略了構造和get set細節,具體代碼裡面應該寫上,部落格裡面就不累贅。
然後自定義轉換器:
配置檔案裡面配置:
将自定義的轉換器注冊到Spring上下文中去。
jsp界面:
測試代碼: