最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot接收日期類(lèi)型參數(shù)的操作方法

 更新時(shí)間:2024年02月28日 09:26:40   作者:HelloWorld102  
如果使用Get請(qǐng)求,直接使用對(duì)象接收,則可以使用@DateTimeFormat注解進(jìn)行格式化,本文重點(diǎn)給大家介紹springboot接收日期類(lèi)型參數(shù)的方法,感興趣的朋友一起看看吧

嘮嗑部分

在做Java開(kāi)發(fā)時(shí),肯定會(huì)碰到傳遞時(shí)間參數(shù)的情況吧,比如用戶的出生日期、活動(dòng)的開(kāi)始,結(jié)束日期等等,這些參數(shù)往往是由前端傳遞過(guò)來(lái)的,那么在SpringBoot項(xiàng)目中,該如何正確的接收日期參數(shù)呢,這便是我們今日所說(shuō)的內(nèi)容

首先我們來(lái)回顧一下常用的幾種傳參方式

1、Params參數(shù)

Params參數(shù)也稱(chēng)路徑傳參,參數(shù)是路徑的一部分,如:http://127.0.0.1:8888/date/receiveParamOfParams/2023-05-22

2、Query參數(shù)

Query參數(shù)通常使用?進(jìn)行傳遞,多個(gè)參數(shù)使用&分割,如:http://127.0.0.1:8888/date/receiveParamOfQuery?bothDate=2023-05-22

3、請(qǐng)求體參數(shù)

請(qǐng)求體參數(shù)也是我們常用的json傳參

那么為什么要回顧傳參方式呢,難道說(shuō)傳參方式不同,接收日期參數(shù)的方式也不一樣嗎?是的沒(méi)錯(cuò)

下面步入正文。

springboot接收日期類(lèi)型參數(shù)

如果使用Get請(qǐng)求,直接使用對(duì)象接收,則可以使用@DateTimeFormat注解進(jìn)行格式化,如:

@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startBuyDate;

如果使用Post請(qǐng)求,@RequestBody接收請(qǐng)求體參數(shù),默認(rèn)解析日期格式為yyyy-MM-dd HH:mm:ss , 如果需要接收其他格式的參數(shù),則可以使用@JsonFormat注解,如:

@JsonFormat(timezone="GMT+8",pattern="yyyy-MM-dd")
private Date buyDate;

也可以使用java8新增的LocalDate自定義序列化,如:

@Configuration
@ConditionalOnClass(ObjectMapper.class)
@AutoConfigureBefore(JacksonAutoConfiguration.class)
public class JacksonConfig {
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer customizer() {
        return builder -> {
            builder.locale(Locale.CHINA);
            builder.timeZone(TimeZone.getTimeZone(ZoneId.systemDefault()));
            builder.simpleDateFormat(DatePattern.NORM_DATETIME_PATTERN);
            builder.modules(new TimeModule());
        };
    }
}
public class TimeModule extends SimpleModule {
    public TimeModule() {
        super(PackageVersion.VERSION);
        this.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
        this.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
        this.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN)));
        this.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
        this.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
        this.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN)));
    }
}
//yyyy-MM-dd HH:mm:ss
private LocalDateTime buyDateTime;
//yyyy-MM-dd
private LocalDate buyDate;
//HH:mm:ss
private LocalTime buyTime;

擴(kuò)展:

springboot項(xiàng)目接收一個(gè)日期類(lèi)型參數(shù)

        1. 在Controller的方法參數(shù)中使用@RequestParam注解接收日期參數(shù),可以通過(guò)指定日期格式實(shí)現(xiàn),例如:

@GetMapping("/api/date") public String getDate(@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) { // ... }

        2.使用@PathVariable注解接收日期參數(shù),例如

@GetMapping("/api/date/{date}")
public String getDate(@PathVariable("date") @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
    // ...
}

        3. 在請(qǐng)求體中發(fā)送JSON格式的數(shù)據(jù),并使用@RequestBody注解接收日期類(lèi)型的字段,例如:

@PostMapping("/api/date")
public String getDate(@RequestBody RequestBodyDto requestBodyDto) {
    Date date = requestBodyDto.getDate();
    // ...
}

        其中,RequestBodyDto為請(qǐng)求體對(duì)應(yīng)的Java對(duì)象,可以使用@JsonFormat注解指定日期格式,例如:

public class RequestBodyDto {
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date date;
    // getter/setter
}

        無(wú)論使用哪種方式接收日期參數(shù),都需要注意指定日期格式,以避免類(lèi)型轉(zhuǎn)換錯(cuò)誤和日期格式化異常。

到此這篇關(guān)于springboot接收日期類(lèi)型參數(shù)的文章就介紹到這了,更多相關(guān)springboot日期類(lèi)型參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Json字符串轉(zhuǎn)Java對(duì)象和List代碼實(shí)例

    Json字符串轉(zhuǎn)Java對(duì)象和List代碼實(shí)例

    這篇文章主要介紹了Json字符串轉(zhuǎn)Java對(duì)象和List代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 關(guān)于@JsonProperty和@JSONField注解的區(qū)別及用法

    關(guān)于@JsonProperty和@JSONField注解的區(qū)別及用法

    這篇文章主要介紹了關(guān)于@JsonProperty和@JSONField注解的區(qū)別及用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 解決IDEA報(bào)錯(cuò)war?exploded?is?not?valid問(wèn)題

    解決IDEA報(bào)錯(cuò)war?exploded?is?not?valid問(wèn)題

    在使用IntelliJ?IDEA時(shí)遇到'[projectname]warexploded'無(wú)效的問(wèn)題,可以通過(guò)清除項(xiàng)目列表、重新導(dǎo)入項(xiàng)目和配置新的Tomcat來(lái)解決,確保在Tomcat配置中,將ApplicationContext修改為僅包含一個(gè)'/',這一方法或許能幫助遇到相似問(wèn)題的開(kāi)發(fā)者
    2024-09-09
  • SpringBoot 回滾操作的幾種實(shí)現(xiàn)方式

    SpringBoot 回滾操作的幾種實(shí)現(xiàn)方式

    回滾操作是一種常見(jiàn)的操作,用于撤銷(xiāo)之前執(zhí)行的操作,本文主要介紹了SpringBoot回滾操作的幾種實(shí)現(xiàn)方式,包含基于異常類(lèi)型的回滾、基于自定義邏輯的回滾和基于數(shù)據(jù)庫(kù)狀態(tài)的回滾,感興趣的可以了解一下
    2024-03-03
  • java版數(shù)獨(dú)游戲界面實(shí)現(xiàn)(二)

    java版數(shù)獨(dú)游戲界面實(shí)現(xiàn)(二)

    這篇文章主要為大家詳細(xì)介紹了java版數(shù)獨(dú)游戲界面實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Spring Boot項(xiàng)目添加外部Jar包以及配置多數(shù)據(jù)源的完整步驟

    Spring Boot項(xiàng)目添加外部Jar包以及配置多數(shù)據(jù)源的完整步驟

    這篇文章主要給大家介紹了關(guān)于Spring Boot項(xiàng)目添加外部Jar包以及配置多數(shù)據(jù)源的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • java弱口令檢測(cè)機(jī)制解析

    java弱口令檢測(cè)機(jī)制解析

    這篇文章主要介紹了java弱口令檢測(cè)機(jī)制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java基礎(chǔ)知識(shí)精通循環(huán)結(jié)構(gòu)與break及continue

    Java基礎(chǔ)知識(shí)精通循環(huán)結(jié)構(gòu)與break及continue

    循環(huán)結(jié)構(gòu)是指在程序中需要反復(fù)執(zhí)行某個(gè)功能而設(shè)置的一種程序結(jié)構(gòu)。它由循環(huán)體中的條件,判斷繼續(xù)執(zhí)行某個(gè)功能還是退出循環(huán),選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果判斷某些條件,根據(jù)判斷的結(jié)果來(lái)控制程序的流程
    2022-04-04
  • Bean的管理與SpringBoot自動(dòng)裝配原理解讀

    Bean的管理與SpringBoot自動(dòng)裝配原理解讀

    在SpringBoot項(xiàng)目中,啟動(dòng)時(shí)自動(dòng)創(chuàng)建IOC容器并初始化bean對(duì)象,支持通過(guò)依賴(lài)注入獲取,Bean可以通過(guò)name或類(lèi)型獲取,支持單例和非單例等多種作用域,對(duì)于第三方Bean,推薦在配置類(lèi)中用@Bean標(biāo)識(shí)方法進(jìn)行定義
    2024-11-11
  • Java8中Stream的一些神操作

    Java8中Stream的一些神操作

    Stream是Java8中處理集合的關(guān)鍵抽象概念,它可以指定你希望對(duì)集合進(jìn)行的操作,可以執(zhí)行非常復(fù)雜的查找、過(guò)濾和映射數(shù)據(jù)等操作,這篇文章主要給大家介紹了Java8中Stream的一些神操作,需要的朋友可以參考下
    2021-11-11

最新評(píng)論

常山县| 馆陶县| 景泰县| 布尔津县| 上犹县| 平舆县| 衡阳县| 普定县| 五台县| 铁岭县| 绥中县| 阿克陶县| 石家庄市| 杨浦区| 三门县| 伊金霍洛旗| 吉水县| 内丘县| 正蓝旗| 建昌县| 西昌市| 吉林省| 车险| 璧山县| 静宁县| 朔州市| 安福县| 曲麻莱县| 三明市| 伊宁市| 磐安县| 定兴县| 巴彦县| 珲春市| 柳州市| 金塔县| 渭南市| 唐山市| 晋城| 怀仁县| 出国|