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

Spring中@RequestParam、@RequestBody和@PathVariable的用法詳解

 更新時間:2024年01月25日 10:13:34   作者:鑒泉~Richarlie  
這篇文章主要介紹了Spring中@RequestParam、@RequestBody和@PathVariable的用法詳解,后端使用集合來接受參數,靈活性較好,如果url中沒有對參數賦key值,后端在接收時,會根據參數值的類型附,賦一個初始key,需要的朋友可以參考下

@RequestParam

使用@RequestParam接收前段參數比較方便,前端傳參的URL:

url = “${ctx}/main/mm/am/edit?Id=${Id}&name=${name}”

后端使用集合來接受參數,靈活性較好,如果url中沒有對參數賦key值,后端在接收時,會根據參數值的類型附,賦一個初始key(String、long ……)

@RequestMapping("/edit")
    public String edit(Model model, @RequestParam Map<String, Object> paramMap ) {
        long id = Long.parseLong(paramMap.get("id").toString());
        String name = paramMap.get("name").toString;
        return page("edit");
    }

@PathVariable

使用@PathVariable接收參數,參數值需要在url進行占位,前端傳參的URL:

前臺實例:

url = “${ctx}/main/mm/am/edit/${Id}/${name}”

服務端接受:

	@RequestMapping("/edit/{id}/{name}")
    public String edit(Model model, @PathVariable long id,@PathVariable String name) {
    <span class="hljs-selector-tag">return</span> 
    <span class="hljs-selector-tag">page</span>(<span class="hljs-string">"edit"</span>);
}

前端傳參的URL于后端@RequestMapping的URL必須相同且參數位置一一對應,否則前端會找不到后端地址

@RequestParam使用

先介紹一下@RequestParam的使用場景:

注解@RequestParam接收的參數是來自requestHeader中,即請求頭。通常用于GET請求,比如常見的url://localhost:8081/spring-boot-study/novel/findByAuthorAndType?author=唐家三少&type=已完結,其在Controller 層的寫法如下圖所示:

在這里插入圖片描述

@RequestParam有三個配置參數:

  • required 表示是否必須,默認為 true,必須。
  • defaultValue 可設置請求參數的默認值。
  • value 為接收url的參數名(相當于key值)。

@RequestParam用來處理 Content-Type 為 application/x-www-form-urlencoded 編碼的內容,Content-Type默認為該屬性。

@RequestParam也可用于其它類型的請求,例如:POST、DELETE等請求。比如向表中插入單條數據,但是這樣不支持批量插入數據啊,如果改用 json 字符串來傳值的話,類型設置為 application/json,點擊發(fā)送的話,會報錯,后臺接收不到值,為 null。

這時候,注解@RequestBody就派上用場了。

@RequestBody使用

先介紹一下@RequestBody的使用場景:

注解@RequestBody接收的參數是來自requestBody中,即請求體。

一般用于處理非 Content-Type: application/x-www-form-urlencoded編碼格式的數據,比如:application/json、application/xml等類型的數據。

就application/json類型的數據而言,使用注解@RequestBody可以將body里面所有的json數據傳到后端,后端再進行解析。

舉個批量插入數據的例子,Controller層的寫法如下圖所示:

在這里插入圖片描述

注意:前端使用$.ajax的話,一定要指定 contentType: "application/json;charset=utf-8;",默認為 application/x-www-form-urlencoded。

@RequestBody注解一般主要是用來處理content-type:"application/json charset=utf-8"或者content-type:"application/xml charset=utf-8"兩種請求數據,一般是異步請求用的比較多些,例如:

//異步請求部分代碼
$.ajax({
        url:"/hello",
        type:“POST”,
        data:'{“id”:“123”,“name”:“chenyc”}',
        content-type:“application/json charset=utf-8”,
        success:function(data){
          alert(data);
        }
    });
//@requestBody注解獲取數據代碼
@requestMapping("/hello")
    public String hello(@requestBody Integer id,@requestBody String name){
      System.out.println(“id:”+id+";"+“name:”+name);
    }

此時@requestBody注解就可以獲取到請求中的各個參數然后賦值到相對應的方法形參上,另外,當有一個實體類User包含了id和name的元素的話,在方法里面直接可以寫@requestBody User user就會自動封裝好給我們使用的了,不用麻煩像這樣@requestBody Integer id,@requestBody String name一個一個的封裝

到此這篇關于Spring中@RequestParam、@RequestBody和@PathVariable的用法詳解的文章就介紹到這了,更多相關@RequestParam、@RequestBody和@PathVariable內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java RabbitMQ的工作隊列與消息應答詳解

    Java RabbitMQ的工作隊列與消息應答詳解

    這篇文章主要為大家詳細介紹了Python實現(xiàn)學生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • smslib發(fā)短信實例代碼(電腦發(fā)短信)

    smslib發(fā)短信實例代碼(電腦發(fā)短信)

    smslib發(fā)短信實例,大家可以參考使用開發(fā)自己的程序
    2013-12-12
  • Java循環(huán)終止的實現(xiàn)方式總結

    Java循環(huán)終止的實現(xiàn)方式總結

    循環(huán)是一種重復執(zhí)行一段代碼的結構,Java提供了四種主要的循環(huán)結構,本文主要來和大家介紹一下Java循環(huán)終止的實現(xiàn)方式,有需要的小伙伴可以參考一下
    2023-10-10
  • 一次踩坑記錄 @valid注解不生效 排查過程

    一次踩坑記錄 @valid注解不生效 排查過程

    這篇文章主要介紹了一次踩坑記錄 @valid注解不生效 排查過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 詳談JSON與Javabean轉換的幾種形式

    詳談JSON與Javabean轉換的幾種形式

    下面小編就為大家?guī)硪黄斦凧SON與Javabean轉換的幾種形式。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 詳解java.lang.reflect.Modifier.isInterface()方法

    詳解java.lang.reflect.Modifier.isInterface()方法

    這篇文章主要介紹了詳解java.lang.reflect.Modifier.isInterface()方法的相關資料,這里提供實例幫助大家理解這個方法的使用,需要的朋友可以參考下
    2017-09-09
  • Springboot控制反轉與Bean對象的方法

    Springboot控制反轉與Bean對象的方法

    文章介紹了Spring Boot中的控制反轉(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依賴關系,它詳細講解了Bean的注冊過程,包括通過@ComponentScan和@Bean注解的方式,并討論了Bean的依賴注入方法,如構造器注入、Setter注入和字段注入,感興趣的朋友一起看看吧
    2025-03-03
  • Java語言實現(xiàn)簡單FTP軟件 FTP軟件效果圖預覽之下載功能(2)

    Java語言實現(xiàn)簡單FTP軟件 FTP軟件效果圖預覽之下載功能(2)

    這篇文章主要為大家詳細介紹了Java語言實現(xiàn)簡單FTP軟件,F(xiàn)TP軟件效果圖預覽之下載功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • springboot如何添加全局異常捕獲類

    springboot如何添加全局異常捕獲類

    這篇文章主要介紹了springboot如何添加全局異常捕獲類,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Set接口深入剖析之HashSet、LinkedHashSet和TreeSet

    Set接口深入剖析之HashSet、LinkedHashSet和TreeSet

    這篇文章主要介紹了Set接口深入剖析之HashSet、LinkedHashSet和TreeSet,LinkedHashSet是HashSet的子類,實現(xiàn)了Set接口,LinkedHashSet底層是一個LinkedHashMap,底層維護了一個數組+雙向鏈表,需要的朋友可以參考下
    2023-09-09

最新評論

宜黄县| 报价| 尉氏县| 沁阳市| 大悟县| 通辽市| 隆安县| 西藏| 民勤县| 临湘市| 马山县| 上高县| 峡江县| 平定县| 潼关县| 镇平县| 蚌埠市| 阜康市| 九江县| 永宁县| 鹤山市| 阿尔山市| 富平县| 竹山县| 亚东县| 乌兰浩特市| 盐山县| 新兴县| 马公市| 建昌县| 陆河县| 板桥市| 夏河县| 朝阳区| 石楼县| 黑龙江省| 城口县| 西畴县| 芦山县| 东安县| 绩溪县|