溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Springboot中@RequestBody注解使用的注意事項(xiàng)

發(fā)布時(shí)間:2022-03-07 09:41:47 來(lái)源:億速云 閱讀:741 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Springboot中@RequestBody注解使用的注意事項(xiàng),小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

    @RequestBody注解踩坑

    @RequestBody json注入Bean屬性為空

    1、接收J(rèn)SON數(shù)據(jù)注入到Bean中,必須要加RuquestBody注解

    2、判斷屬性名稱字段是否相同

    3、spring 默認(rèn)不為首字母大寫(xiě)的JavaBean進(jìn)行賦值操作,若首字母大寫(xiě)進(jìn)行賦值操作需加入@JsonProperty(value=“AlarmTime”)注解

    注:JavaBean規(guī)范 屬性的首字母小寫(xiě),駝峰命名:以小寫(xiě)字母開(kāi)頭,每個(gè)單詞首字母大寫(xiě)

    4、首字母大寫(xiě)無(wú)法賦值,修改Bean屬性為Public同樣可以解決問(wèn)題(不建議此方案解決)

    例:

    Springboot中@RequestBody注解使用的注意事項(xiàng)

    Springboot中@RequestBody注解使用的注意事項(xiàng)

    具體操作親試

    @RequestBody注解的一些注意事項(xiàng)

    1.@RequestBody注解用來(lái)獲取請(qǐng)求體中的數(shù)據(jù),直接使用得到的是key=value&key=value…結(jié)構(gòu)的數(shù)據(jù),因此get方式不適用(get方式下@RequestBody獲取不到任何數(shù)據(jù))。

    例:

    public void test1(@RequestBody String body){
        system.out.println(body);
    }

    輸出結(jié)果:

    username=hehe&age=20

    2.使用@RequestBody注解后,可以在方法中創(chuàng)建一個(gè)集合對(duì)象,前端提交的集合數(shù)據(jù)可以直接被注入到方法的集合對(duì)象中,而不需要?jiǎng)?chuàng)建一個(gè)pojo對(duì)象進(jìn)行集合的封裝。

    3.如果想要將前端提交的json字符串自動(dòng)封裝到一個(gè)對(duì)象中,需要導(dǎo)入jackson的相關(guān)jar包,并使用@RequestBody注解。

    注:springmvc默認(rèn)使用MappingJacksonHttpMessageConverter對(duì)json數(shù)據(jù)進(jìn)行轉(zhuǎn)換。

    4.使用@RequestBody 前后端參數(shù)要匹配個(gè)數(shù)不能少。字段名字要一樣。 

    關(guān)于“Springboot中@RequestBody注解使用的注意事項(xiàng)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

    向AI問(wèn)一下細(xì)節(jié)

    免責(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)容。

    AI