亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot表單提交全局日期格式轉換器如何實現

發布時間:2023-04-17 11:49:28 來源:億速云 閱讀:139 作者:iii 欄目:開發技術

這篇文章主要介紹“SpringBoot表單提交全局日期格式轉換器如何實現”,在日常操作中,相信很多人在SpringBoot表單提交全局日期格式轉換器如何實現問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”SpringBoot表單提交全局日期格式轉換器如何實現”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

分析

?當前臺的提交數據的Content-Type為以下情況

  • application/x-www-form-urlencoded: 表單提交。

  • multipart/form-data: 二進制流提交,多用于上傳文件。

的時候,使用此轉換方式。

? 會用到全局日期轉換工具類DateUtil.formatDateStrToDateAllFormat()

一. 實現Converter<S, T>接口的方式

實現SpringConverter接口,指定將String轉換為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 + @InitBinder注解的方式

@ControllerAdvice注解會攔截所有controller請求,配合@InitBinder注解,在參數封裝到實體類之前將String日期轉換為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);
            }
        });
    }
}

三. RequestMappingHandlerAdapter的方式

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) {
		
		// 通過lombda表達式創建WebBindingInitializer對象
        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;
    }
}

四. 效果

?前臺JS

const jsonData = {
	// ????待處理的日期字符串數據
    birthday: '20210105',
    nameAA: 'jiafeitian',
    hobby: '吃飯'
};

$.ajax({
    url: '后臺url',
    type: 'POST',
    // 對象轉換為json字符串
    data: jsonData,
    // 指定為表單提交
    contentType: "application/x-www-form-urlencoded",
    success: function (data, status, xhr) {
        console.log(data);
    }
});

?后臺Form

import lombok.Data;
import java.util.Date;

@Data
public class Test15Form {

    private String name;

    private String hobby;

    private String address;
	
	// 用來接收的Date類型的數據
    private Date birthday;
}

可以看到前臺提交的日期字符串被轉換為Date格式了

SpringBoot表單提交全局日期格式轉換器如何實現

到此,關于“SpringBoot表單提交全局日期格式轉換器如何實現”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苍山县| 阿拉善左旗| 威海市| 栾城县| 准格尔旗| 额济纳旗| 谢通门县| 分宜县| 酒泉市| 蕲春县| 闻喜县| 嘉峪关市| 萍乡市| 安塞县| 吉安市| 大埔区| 繁昌县| 马山县| 堆龙德庆县| 庆元县| 贵溪市| 丽水市| 锡林郭勒盟| 盱眙县| 涟水县| 本溪市| 彰化市| 浪卡子县| 台东县| 信宜市| 施甸县| 建始县| 彭州市| 荔浦县| 涡阳县| 金寨县| 高雄县| 大埔县| 乐亭县| 南溪县| 秦皇岛市|