91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

昌都县| 合肥市| 潢川县| 小金县| 麻栗坡县| 巍山| 南充市| 内黄县| 丰宁| 湖南省| 高清| 宣恩县| 凤庆县| 内乡县| 工布江达县| 玉龙| 河南省| 灵寿县| 松江区| 同心县| 乌拉特前旗| 共和县| 南皮县| 东明县| 崇义县| 平度市| 湖北省| 泸西县| 长顺县| 灵宝市| 乌兰浩特市| 获嘉县| 芜湖市| 皮山县| 甘肃省| 丰原市| 万州区| 瓦房店市| 红桥区| 大新县| 同江市|