您好,登錄后才能下訂單哦!
這篇文章主要介紹“SpringBoot表單提交全局日期格式轉(zhuǎn)換器如何實(shí)現(xiàn)”,在日常操作中,相信很多人在SpringBoot表單提交全局日期格式轉(zhuǎn)換器如何實(shí)現(xiàn)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”SpringBoot表單提交全局日期格式轉(zhuǎn)換器如何實(shí)現(xiàn)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
分析
?當(dāng)前臺(tái)的提交數(shù)據(jù)的Content-Type
為以下情況
application/x-www-form-urlencoded
: 表單提交。
multipart/form-data
: 二進(jìn)制流提交,多用于上傳文件。
的時(shí)候,使用此轉(zhuǎn)換方式。
? 會(huì)用到全局日期轉(zhuǎn)換工具類(lèi)DateUtil.formatDateStrToDateAllFormat()
實(shí)現(xiàn)Spring
的Converter
接口,指定將String
轉(zhuǎn)換為Date
import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; import java.util.Date; @Component public class GlobalFormStrToDateConvert implements Converter<String, Date> { @Override public Date convert(String dateStr) { try { return DateUtil.formatDateStrToDateAllFormat(dateStr); } catch (Exception e) { return null; } } }
@ControllerAdvice
注解會(huì)攔截所有controller
請(qǐng)求,配合@InitBinder
注解,在參數(shù)封裝到實(shí)體類(lèi)之前將String日期
轉(zhuǎn)換為Date日期
。
import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.InitBinder; import java.beans.PropertyEditorSupport; import java.util.Date; @ControllerAdvice public class GlobalFormStrToDateConvert { @InitBinder protected void dateStrToDate(WebDataBinder binder) { binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { @Override public void setAsText(String dateStr) throws IllegalArgumentException { Date date = DateUtil.formatDateStrToDateAllFormat(dateStr); setValue(date); } }); } }
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.bind.support.WebBindingInitializer; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; import java.beans.PropertyEditorSupport; import java.util.Date; @Configuration public class GlobalFormStrToDateConvert { @Bean public RequestMappingHandlerAdapter webBindingInitializer(RequestMappingHandlerAdapter requestMappingHandlerAdapter) { // 通過(guò)lombda表達(dá)式創(chuàng)建WebBindingInitializer對(duì)象 WebBindingInitializer webBindingInitializer = binder -> binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { @Override public void setAsText(String dateStr) { Date date = DateUtil.formatDateStrToDateAllFormat(dateStr); setValue(date); } }); requestMappingHandlerAdapter.setWebBindingInitializer(webBindingInitializer); return requestMappingHandlerAdapter; } }
?前臺(tái)JS
const jsonData = { // ????待處理的日期字符串?dāng)?shù)據(jù) birthday: '20210105', nameAA: 'jiafeitian', hobby: '吃飯' }; $.ajax({ url: '后臺(tái)url', type: 'POST', // 對(duì)象轉(zhuǎn)換為json字符串 data: jsonData, // 指定為表單提交 contentType: "application/x-www-form-urlencoded", success: function (data, status, xhr) { console.log(data); } });
?后臺(tái)Form
import lombok.Data; import java.util.Date; @Data public class Test15Form { private String name; private String hobby; private String address; // 用來(lái)接收的Date類(lèi)型的數(shù)據(jù) private Date birthday; }
可以看到前臺(tái)提交的日期字符串被轉(zhuǎn)換為Date格式了
到此,關(guān)于“SpringBoot表單提交全局日期格式轉(zhuǎn)換器如何實(shí)現(xiàn)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。