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

Spring?MVC實現(xiàn)GET請求接收Date類型參數(shù)

 更新時間:2022年07月05日 08:39:35   作者:行云之流水  
這篇文章主要介紹了Spring?MVC實現(xiàn)GET請求接收Date類型參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringMVC GET請求接收Date類型參數(shù)

Controller方法定義

@GetMapping('/list-by-date')
ResponseBean listByUserIdAndDateRange(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date fromDate)?
? ? System.out.println(fromDate)
}

請求

curl -X GET http://localhost/list-by-date?fromDate=2019-02-27 00:01:00

SpringMVC接收哪些類型參數(shù)參數(shù)

支持的數(shù)據(jù)類型

基本類型參數(shù):

包括基本類型和 String 類型

POJO 類型參數(shù):

包括實體類,以及關(guān)聯(lián)的實體類

數(shù)組和集合類型參數(shù):

包括 List 結(jié)構(gòu)和 Map 結(jié)構(gòu)的集合(包括數(shù)組)

SpringMVC 綁定請求參數(shù)是自動實現(xiàn)的,但是要想使用,必須遵循使用要求。

使用要求

如果是基本類型或者 String 類型:

要求我們的參數(shù)名稱必須和控制器中方法的形參名稱保持一致。(嚴(yán)格區(qū)分大小寫)

如果是 POJO 類型,或者它的關(guān)聯(lián)對象:

要求表單中參數(shù)名稱和 POJO 類的屬性名稱保持一致。并且控制器方法的參數(shù)類型是 POJO 類型。

如果是集合類型,有兩種方式:

  • 第一種:

要求集合類型的請求參數(shù)必須在 POJO 中。在表單中請求參數(shù)名稱要和 POJO 中集合屬性名稱相同。

給 List 集合中的元素賦值,使用下標(biāo)。

給 Map 集合中的元素賦值,使用鍵值對。

  • 第二種:

接收的請求參數(shù)是 json 格式數(shù)據(jù)。需要借助一個注解實現(xiàn)。

注意:

它還可以實現(xiàn)一些數(shù)據(jù)類型自動轉(zhuǎn)換。內(nèi)置轉(zhuǎn)換器全都在:

org.springframework.core.convert.support 包下。有:
java.lang.Boolean -> java.lang.String : ObjectToStringConverter
java.lang.Character -> java.lang.Number : CharacterToNumberFactory
java.lang.Character -> java.lang.String : ObjectToStringConverter
java.lang.Enum -> java.lang.String : EnumToStringConverter
java.lang.Number -> java.lang.Character : NumberToCharacterConverter
java.lang.Number -> java.lang.Number : NumberToNumberConverterFactory
java.lang.Number -> java.lang.String : ObjectToStringConverter
java.lang.String -> java.lang.Boolean : StringToBooleanConverter
java.lang.String -> java.lang.Character : StringToCharacterConverter
java.lang.String -> java.lang.Enum : StringToEnumConverterFactory
java.lang.String -> java.lang.Number : StringToNumberConverterFactory
java.lang.String -> java.util.Locale : StringToLocaleConverter
java.lang.String -> java.util.Properties : StringToPropertiesConverter
java.lang.String -> java.util.UUID : StringToUUIDConverter
java.util.Locale -> java.lang.String : ObjectToStringConverter
java.util.Properties -> java.lang.String : PropertiesToStringConverter
java.util.UUID -> java.lang.String : ObjectToStringConverter
......
如遇特殊類型轉(zhuǎn)換要求,需要我們自己編寫自定義類型轉(zhuǎn)換器。

自定義類型轉(zhuǎn)換器

  • 第一步:定義一個類,實現(xiàn) Converter 接口,該接口有兩個泛型。
public interface Converter<S, T> {//S:表示接受的類型,T:表示目標(biāo)類型
? ? /**
? ? ?* 實現(xiàn)類型轉(zhuǎn)換的方法
? ? ?*/
? ? @Nullable
? ? T convert(S source);
}
/**
?* 自定義類型轉(zhuǎn)換器
?*/
public class StringToDateConverter implements Converter<String, Date> {
? ? /**
? ? ?* 用于把 String 類型轉(zhuǎn)成日期類型
? ? ?*/
? ? @Override
? ? public Date convert(String source) {
? ? ? ? DateFormat format = null;
? ? ? ? try {
? ? ? ? ? ? if(StringUtils.isEmpty(source)) {
? ? ? ? ? ? ? ? throw new NullPointerException("請輸入要轉(zhuǎn)換的日期");
? ? ? ? ? ? }
? ? ? ? ? ? format = new SimpleDateFormat("yyyy-MM-dd");
? ? ? ? ? ? Date date = format.parse(source);
? ? ? ? ? ? return date;
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? throw new RuntimeException("輸入日期有誤");
? ? ? ? }
? ? }
}
  • 第二步:在 spring 配置文件中配置類型轉(zhuǎn)換器。

spring 配置類型轉(zhuǎn)換器的機(jī)制是,將自定義的轉(zhuǎn)換器注冊到類型轉(zhuǎn)換服務(wù)中去。

<!-- 配置類型轉(zhuǎn)換器工廠 -->
<bean id="converterService" ?class="org.springframework.context.support.ConversionServiceFactoryBean">
<!-- 給工廠注入一個新的類型轉(zhuǎn)換器 -->
?? ?<property name="converters">
?? ? <array>
?? ? <!-- 配置自定義類型轉(zhuǎn)換器 -->
?? ??? ? <bean class="com.itheima.web.converter.StringToDateConverter"></bean>
?? ? </array>
?? ? </property>
</bean>
  • 第三步:在 annotation-driven 標(biāo)簽中引用配置的類型轉(zhuǎn)換服務(wù)
<!-- 引用自定義類型轉(zhuǎn)換器 -->
<mvc:annotation-driven ?conversion-service="converterService"></mvc:annotation-driven>

使用 ServletAPI 對象作為方法參數(shù)

?? ?@RequestMapping("/testServletAPI")
? ? public String testServletAPI(HttpServletRequest request,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?HttpServletResponse response,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?HttpSession session) {
? ? ? ? System.out.println(request);
? ? ? ? System.out.println(response);
? ? ? ? System.out.println(session);
? ? ? ? return "success";
? ? }

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 使用IDEA啟動項目遇見ClassNotFoundException的解決方案

    使用IDEA啟動項目遇見ClassNotFoundException的解決方案

    這篇文章主要介紹了使用IDEA啟動項目遇見ClassNotFoundException的正確解決方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Spring內(nèi)部bean和級聯(lián)屬性用法詳解

    Spring內(nèi)部bean和級聯(lián)屬性用法詳解

    這篇文章主要介紹了Java內(nèi)部bean和級聯(lián)屬性用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 微服務(wù)如何通過feign.RequestInterceptor傳遞參數(shù)

    微服務(wù)如何通過feign.RequestInterceptor傳遞參數(shù)

    這篇文章主要介紹了微服務(wù)如何通過feign.RequestInterceptor傳遞參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringMvc獲取頁面中的參數(shù)方法詳解

    SpringMvc獲取頁面中的參數(shù)方法詳解

    這篇文章主要介紹了SpringMvc獲取頁面中的參數(shù)方法詳解,獲取頁面的參數(shù)通常都是讓類實現(xiàn)設(shè)置HttpServletRequest request接口然后重寫接口中的方法的辦法來得到參數(shù),但是在Springmvc中有其他的獲取方法,需要的朋友可以參考下
    2023-10-10
  • jstl之map,list訪問遍歷以及el表達(dá)式map取值的實現(xiàn)

    jstl之map,list訪問遍歷以及el表達(dá)式map取值的實現(xiàn)

    下面小編就為大家?guī)硪黄猨stl之map,list訪問遍歷以及el表達(dá)式map取值的實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 手把手搭建Java共享網(wǎng)盤的方法步驟

    手把手搭建Java共享網(wǎng)盤的方法步驟

    這篇文章主要介紹了手把手搭建Java共享網(wǎng)盤,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • SpringBoot項目導(dǎo)入外部jar包的詳細(xì)指南

    SpringBoot項目導(dǎo)入外部jar包的詳細(xì)指南

    在開發(fā)SpringBoot項目時,我們經(jīng)常需要引入一些外部的jar包來增強(qiáng)項目的功能,這些jar包可能不是Maven中央倉庫中的,或者我們想要使用特定版本的jar包,本文將詳細(xì)介紹如何在SpringBoot項目中導(dǎo)入外部jar包,需要的朋友可以參考下
    2024-10-10
  • MyBatis Example And與Or混合使用的實例

    MyBatis Example And與Or混合使用的實例

    這篇文章主要介紹了MyBatis Example And與Or混合使用的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中集合和數(shù)組的排序方式小結(jié)

    Java中集合和數(shù)組的排序方式小結(jié)

    這篇文章主要介紹了Java中集合和數(shù)組的排序方式小結(jié),本文講解了對數(shù)字?jǐn)?shù)組、字符數(shù)組排序以及集合序列的排序,需要的朋友可以參考下
    2015-01-01
  • Java線程休眠_(dá)動力節(jié)點Java學(xué)院整理

    Java線程休眠_(dá)動力節(jié)點Java學(xué)院整理

    sleep() 的作用是讓當(dāng)前線程休眠,即當(dāng)前線程會從“運行狀態(tài)”進(jìn)入到“休眠(阻塞)狀態(tài)”。下面通過實例代碼給大家介紹Java線程休眠的知識,需要的朋友參考下吧
    2017-05-05

最新評論

旬邑县| 伊宁市| 西昌市| 蒙自县| 桂阳县| 博野县| 淮滨县| 汤原县| 黄陵县| 彩票| 兖州市| 房山区| 康定县| 大姚县| 灵武市| 鄂伦春自治旗| 余姚市| 乐至县| 德庆县| 湘潭市| 灵山县| 花垣县| 河南省| 东台市| 惠安县| 璧山县| 汝阳县| 图们市| 响水县| 全州县| 平顶山市| 于都县| 瑞昌市| 嵊州市| 利辛县| 德化县| 焉耆| 温宿县| 吴川市| 延庆县| 微山县|