概述:
由于SpringMVC框架只能接收指定格式的日期(yyyy-MM-dd),所有在SpringMVC獲取日期之前對(duì)請(qǐng)求中的日期格式進(jìn)行轉(zhuǎn)換,方式如下:
方式一:創(chuàng)建數(shù)據(jù)類型轉(zhuǎn)換器;
? ? spring提供了好多轉(zhuǎn)換器,這也正是SpringMVC可以自動(dòng)對(duì)請(qǐng)求中的參數(shù)進(jìn)行封裝的原因,由于日期的格式太多所以spring沒(méi)有提供日期類型的轉(zhuǎn)換器,不過(guò)spring提供了一個(gè)供使用者創(chuàng)建類型轉(zhuǎn)換器的接口,我們可以通過(guò)該接口創(chuàng)建可以轉(zhuǎn)換為指定格式日期的轉(zhuǎn)換器;
? ? 步驟:
? ? ? ? 1)羡榴、實(shí)現(xiàn)Converter<S,T>接口;
? ? ? ? 2)择懂、重寫(xiě)convert方法;
? ? ? ? 3)、在convert方法中編寫(xiě)轉(zhuǎn)換流程;
? ? 代碼截圖:
? ? ?4)邑遏、將自定義的類型轉(zhuǎn)換器添加到Spring中的轉(zhuǎn)換器工廠;
? ? ? ? 代碼截圖:
? ? 5)佣赖、設(shè)置conversion-service屬性;
? ? ? ?代碼截圖:? ?
方式二:注解
在實(shí)體bean日期屬性上添加@DateTimeFormat(pattern = "yyyy-MM-dd")?注解;
方式三:
? ?1)、在Controller層添加一個(gè)方法,方法參數(shù)為WebDataBinder類型;
? ?2)记盒、在方法上添加InitBinder注解;
? ?3)憎蛤、編寫(xiě)方法中的業(yè)務(wù)邏輯;
? ? ? ? ? ? 代碼截圖:
? ? ? ? ? ? ?方法參數(shù)詳解:
? ? ? ? ? ? ? ? ? ? WebDataBinder:該對(duì)象中封裝的是請(qǐng)求中的參數(shù);
? ? ? ? ? ? ? ? ? ? Date.class:該參數(shù)為目標(biāo)類型;
? ? ? ? ? ? ? ? ? ? new PropertiesEditor:該匿名內(nèi)部類為類型轉(zhuǎn)換器;
? ? ? ? ? ? ? ? ? ? setAsText方法:該方法為對(duì)轉(zhuǎn)換流程的封裝;
? ??????????????????setAsText方法參數(shù):請(qǐng)求中需要轉(zhuǎn)換的參數(shù);
三種方式比較:
? ? 方式一:程序中的任何部分都可以使用;(推薦使用)
? ? 方式二:只有添加該注解的屬性可以完成數(shù)據(jù)類型的轉(zhuǎn)換;
? ? 方式三:只有該方法所在的Controller可以使用;
? ??????????????????
? ??????????????????