亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringMVC中@ModelAttribute與@RequestBody的區(qū)別及說(shuō)明

 更新時(shí)間:2022年11月23日 11:01:05   作者:弱水提滄  
這篇文章主要介紹了SpringMVC中@ModelAttribute與@RequestBody的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@ModelAttribute與@RequestBody的區(qū)別

最近在寫代碼的過(guò)程中,發(fā)現(xiàn)之前項(xiàng)目都是使用的@ModelAttribute注解,而自己的一貫使用都是@RequestBody,在網(wǎng)上找資料也沒(méi)有發(fā)現(xiàn)寫的十分具體的博客,因此自己寫了個(gè)SpringBoot的樣例進(jìn)行了測(cè)試驗(yàn)證。

@ModelAttribute與@RequestBody都是用來(lái)注解解析前端發(fā)來(lái)數(shù)據(jù),并自動(dòng)對(duì)應(yīng)到所定義的字段名稱。

這里先放結(jié)論

使用@ModelAttribute注解的實(shí)體類接收前端發(fā)來(lái)的數(shù)據(jù)格式需要為"x-www-form-urlencoded",@RequestBody注解的實(shí)體類接收前端的數(shù)據(jù)格式為JSON(application/json)格式。

(若是使用@ModelAttribute接收application/json格式,雖然不會(huì)報(bào)錯(cuò),但是值并不會(huì)自動(dòng)填入)

測(cè)試

首先新建一個(gè)SpringBoot項(xiàng)目,這個(gè)不需要像SpringMVC項(xiàng)目那么配置麻煩,因?yàn)槭滞扑]這個(gè)。

導(dǎo)入需要的spring-boot-starter-web包。由于測(cè)試的前端發(fā)送的為json數(shù)據(jù),因此還需要導(dǎo)入json依賴。

? ? ? ? <dependency>
?? ??? ??? ?<groupId>net.sf.json-lib</groupId>
?? ??? ??? ?<artifactId>json-lib</artifactId>
?? ??? ??? ?<version>2.4</version>
?? ??? ??? ?<classifier>jdk15</classifier>
?? ??? ?</dependency>
?? ??? ?<dependency>
?? ??? ??? ?<groupId>commons-lang</groupId>
?? ??? ??? ?<artifactId>commons-lang</artifactId>
?? ??? ??? ?<version>2.5</version>
?? ??? ?</dependency>
?? ??? ?<dependency>
?? ??? ??? ?<groupId>commons-beanutils</groupId>
?? ??? ??? ?<artifactId>commons-beanutils</artifactId>
?? ??? ??? ?<version>1.9.2</version>
?? ??? ?</dependency>
?? ??? ?<dependency>
?? ??? ??? ?<groupId>commons-collections</groupId>
?? ??? ??? ?<artifactId>commons-collections</artifactId>
?? ??? ??? ?<version>3.2.1</version>
?? ??? ?</dependency>
?? ??? ?<dependency>
?? ??? ??? ?<groupId>commons-logging</groupId>
?? ??? ??? ?<artifactId>commons-logging</artifactId>
?? ??? ??? ?<version>1.2</version>
?? ??? ?</dependency>

根據(jù)前端發(fā)送的數(shù)據(jù),定義自己的接收實(shí)體類RuleModify,其字段名與前端發(fā)送的key值一致,若是需要改變,可以使用@SerializerName("")進(jìn)行對(duì)應(yīng)相應(yīng)的key值。這里就不貼出代碼。 

在Controller層對(duì)于要測(cè)試的方法使用@RequestBody接收前端數(shù)據(jù),可以看到數(shù)據(jù)都一一對(duì)應(yīng)到實(shí)體類中了(測(cè)試工具為postman)。

@RestController
@RequestMapping("/")
public class TestController {
?
? ? @RequestMapping(value = "/test" ,method = RequestMethod.POST)
? ? public String testJson(@RequestBody RuleModify rule){
? ? ? ? System.out.println("執(zhí)行");
? ? ? ? JSONObject jsonObject = JSONObject.fromObject(rule);
? ? ? ? System.out.println(jsonObject);
? ? ? ? return "hello";
? ? }
? ??
}

postman模擬前端發(fā)送請(qǐng)求。

可以看到成功打印出實(shí)體類,數(shù)據(jù)已經(jīng)對(duì)應(yīng)到字段中了。

接下來(lái)使用@ModelAttribute注解RuleModify類,可以看到JSON(application/json) 格式下,數(shù)據(jù)為空,字段沒(méi)有進(jìn)行注入。

使用postman的x-www-form-urlencoded方式進(jìn)行模擬

可以看到后端成功的注入了數(shù)據(jù)。

至于這兩個(gè)注解的選擇,還是看前端會(huì)發(fā)送什么格式的數(shù)據(jù)之后來(lái)進(jìn)行自由的選擇吧。

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

相關(guān)文章

  • java GUI實(shí)現(xiàn)加法計(jì)算器

    java GUI實(shí)現(xiàn)加法計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了java GUI實(shí)現(xiàn)加法計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Tomcat能起開(kāi),但是訪問(wèn)不進(jìn)8080首頁(yè)的問(wèn)題解決方案

    Tomcat能起開(kāi),但是訪問(wèn)不進(jìn)8080首頁(yè)的問(wèn)題解決方案

    這篇文章主要介紹了Tomcat能起開(kāi),但是訪問(wèn)不進(jìn)8080首頁(yè)的問(wèn)題解決方案的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Java 集合框架之List 的使用(附小游戲練習(xí))

    Java 集合框架之List 的使用(附小游戲練習(xí))

    這篇文章主要介紹Java 集合框架中List 的使用,下面文章將圍繞Java 集合框架中List 的使用展開(kāi)話題,并附上一些小游戲練習(xí),需要的朋友可以參考一下
    2021-10-10
  • 基于java實(shí)現(xiàn)簡(jiǎn)單發(fā)紅包功能

    基于java實(shí)現(xiàn)簡(jiǎn)單發(fā)紅包功能

    這篇文章主要為大家詳細(xì)介紹了基于java實(shí)現(xiàn)簡(jiǎn)單發(fā)紅包功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • spring boot基于注解的聲明式事務(wù)配置詳解

    spring boot基于注解的聲明式事務(wù)配置詳解

    這篇文章主要介紹了spring boot基于注解的聲明式事務(wù)配置詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java設(shè)計(jì)模式之組合模式

    Java設(shè)計(jì)模式之組合模式

    這篇文章介紹了Java設(shè)計(jì)模式之組合模式,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • 如何實(shí)現(xiàn)java遞歸 處理權(quán)限管理菜單樹或分類

    如何實(shí)現(xiàn)java遞歸 處理權(quán)限管理菜單樹或分類

    這篇文章主要介紹了如何實(shí)現(xiàn)java遞歸 處理權(quán)限管理菜單樹或分類,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • java郵件收發(fā)功能實(shí)現(xiàn)代碼

    java郵件收發(fā)功能實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了java郵件收發(fā)功能實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的朋友可以參考一下
    2016-06-06
  • Maven項(xiàng)目打包成war包部署到Tomcat的方法

    Maven項(xiàng)目打包成war包部署到Tomcat的方法

    這篇文章主要介紹了Maven項(xiàng)目打包成war包部署到Tomcat的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Java設(shè)計(jì)模式之單例模式深入探索

    Java設(shè)計(jì)模式之單例模式深入探索

    單例模式(Singleton Pattern)是 Java 中最簡(jiǎn)單的設(shè)計(jì)模式之一。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式,這種模式涉及到一個(gè)單一的類,該類負(fù)責(zé)創(chuàng)建自己的對(duì)象,同時(shí)確保只有單個(gè)對(duì)象被創(chuàng)建
    2021-10-10

最新評(píng)論