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

SpringMVC參數(shù)傳遞之基本數(shù)據(jù)類型和復(fù)雜對象說明

 更新時間:2022年10月26日 11:27:34   作者:lxcoding  
這篇文章主要介紹了SpringMVC參數(shù)傳遞之基本數(shù)據(jù)類型和復(fù)雜對象說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

前言

本文主要記錄SpringMVC如何接收前臺傳過來的基本數(shù)據(jù)類型和對象,以及可能出現(xiàn)的組合。

在了解下面參數(shù)如何傳遞前先記住兩個結(jié)論

  • 當Ajax以application/x-www-form-urlencoded編碼格式上傳數(shù)據(jù),必須使用JSON對象傳遞數(shù)據(jù),后臺需要使用@RequestParam 或者HttpServletRequest來接收數(shù)據(jù)
  • 當Ajax以application/json編碼格式上傳數(shù)據(jù),必須使用JSON字符串傳遞數(shù)據(jù),后臺需要使用@RquestBody標識參數(shù)來獲取數(shù)據(jù),使用Map或者實體對象來接收數(shù)據(jù),如果只單單是接收一個數(shù)組,可以使用List來接收數(shù)據(jù)。

下面可能會用到的一些類

public class User {
    private String name;
    private int age;
	//getter and setter...
}

1.當簡單接收基本數(shù)據(jù)類型和包裝類型的時候

當前臺發(fā)送過來一些基本類型或包裝類型的數(shù)據(jù),可以直接使用基本類型或包裝類型形參接收,或者把這些參數(shù)封裝在對象中,使用對象來接收。

前臺發(fā)送json對象(application/x-www-form-urlencoded)

$(function () {
    var obj={};
    obj.name="李四";
    obj.age=12;
    $.ajax({
        url: "/param/test1",
        type:"POST",
        contentType:"application/x-www-form-urlencoded",
        data:obj,
        dataType:"json",
        success:function(data){
        }
    })
})

后臺使用基本類型或包裝類型形參接收數(shù)據(jù)

形參名必須和前臺發(fā)送過來的屬性名統(tǒng)一,如果不相同(前臺是age字段,后臺使用userAge字段接收),可以使用@RequestParam聲明是要接收哪個字段的值

@RequestMapping(value = "/test1", method = RequestMethod.POST)
@ResponseBody
private String Test1(String name,@RequestParam("age")int  userAge) {
   System.out.println(name);
   System.out.println(userAge);
   return "success";
}

當然這里也可以使用對象來接收,前提是對象的成員變量名必須和json對象的屬性名一致。

@RequestMapping(value = "/test1", method = RequestMethod.POST)
@ResponseBody
private String Test1(User user) {
   System.out.println(user);
   return "success";
}

2.當接收復(fù)雜對象的時候

當從前臺發(fā)過來的json對象中又包含對象的時候,我們可以考慮用Map集合接收,或者使用自定義類來封裝。

前端發(fā)送json字符串(注意:這里使用application/json)

$(function () {
    var obj={};
    obj.name="展示";
    var user1={"name":"李四","age":1};
    var user2={"name":"網(wǎng)四","age":23};
    obj.users={};
    obj.users.user1=user1;
    obj.users.user2=user2;
    var s=JSON.stringify(obj);
    $.ajax({
        url: "/param/test1",
        type:"POST",
        contentType:"application/json",
        data:JSON.stringify(obj),//"{"name":"展示","users":{"user1":{"name":"李四","age":1},"user2":{"name":"網(wǎng)四","age":23}}}"
        dataType:"json",
        success:function(data){
        }
    })
})

使用自定義類來接收

public class StringAndMap {
    private String name;
    private Map<String,User> users;
    //getter and setter....
}
@RequestMapping(value = "/test1", method = RequestMethod.POST)
@ResponseBody
private String Test1(@RequestBody StringAndMap sam) {
    System.out.println(sam.getName());
    Map<String,User> userMap=sam.getUsers();
    System.out.println(userMap.get("user1"));
    System.out.println(userMap.get("user2"));
    return "success";
}

使用Map集合接收

@RequestMapping(value = "/test1", method = RequestMethod.POST)
@ResponseBody
private String Test1(@RequestBody Map<String,Object> map) {
    System.out.println(map.get("name"));
    Map<String,Object> userMap=(Map<String,Object>)map.get("users");
    System.out.println(userMap.get("user1"));
    System.out.println(userMap.get("user2"));
    return "success";
}

接收數(shù)據(jù)后的map形參

無論使用自定義類封裝還是使用Map集合,json對象的屬性名一定要和接收對象的屬性一致。

那我們可不可以使用前臺發(fā)送json對象(application/x-www-form-urlencoded),后臺直接使用自定義類來接收呢?

是不可以的,你們自己可以試試。從以往的經(jīng)驗來看,只要前端發(fā)過來的json對象中包含對象或者數(shù)組,都只能使用前臺發(fā)送json字符串,后臺使用@RequestBody修飾的形參接收。

上面只是講解了關(guān)于簡單對象和復(fù)雜對象參數(shù)的傳遞,如果對象中涉及到數(shù)組呢?

可以看看我另一篇文章SpringMVC參數(shù)的傳遞——接收List數(shù)組類型的數(shù)據(jù)

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

相關(guān)文章

  • MyBatis快速入門(簡明淺析易懂)

    MyBatis快速入門(簡明淺析易懂)

    MyBatis是支持普通SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架。mybatis的學(xué)習是程序員的必修課。今天小編通過分享本教程幫助大家快速入門mybatis,對mybatis入門知識感興趣的朋友參考下吧
    2016-11-11
  • Maven打包并生成運行腳本的示例代碼

    Maven打包并生成運行腳本的示例代碼

    這篇文章主要介紹了Maven打包并生成運行腳本,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • SpringSecurity實現(xiàn)登陸認證并返回token方式

    SpringSecurity實現(xiàn)登陸認證并返回token方式

    這篇文章主要介紹了SpringSecurity實現(xiàn)登陸認證并返回token方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Spring?@Cacheable指定失效時間實例

    Spring?@Cacheable指定失效時間實例

    這篇文章主要介紹了Spring?@Cacheable指定失效時間實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 詳解Java字符串在內(nèi)存中的存儲位置

    詳解Java字符串在內(nèi)存中的存儲位置

    這篇文章主要介紹了Java字符串在內(nèi)存中的存儲位置,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-05-05
  • Java實現(xiàn)二叉樹的示例代碼(遞歸&迭代)

    Java實現(xiàn)二叉樹的示例代碼(遞歸&迭代)

    二叉樹(Binary?tree)是樹形結(jié)構(gòu)的一個重要類型。本文將利用Java語言實現(xiàn)二叉樹,文中的示例代碼講解詳細,需要的同學(xué)可以參考一下
    2022-03-03
  • Java實現(xiàn)兩人五子棋游戲(七) 屏幕提示信息

    Java實現(xiàn)兩人五子棋游戲(七) 屏幕提示信息

    這篇文章主要為大家詳細介紹了Java實現(xiàn)兩人五子棋游戲,屏幕提示游戲信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • SpringSecurity實現(xiàn)前后端分離的示例詳解

    SpringSecurity實現(xiàn)前后端分離的示例詳解

    Spring Security默認提供賬號密碼認證方式,具體實現(xiàn)是在UsernamePasswordAuthenticationFilter 中,這篇文章主要介紹了SpringSecurity實現(xiàn)前后端分離的示例詳解,需要的朋友可以參考下
    2023-03-03
  • Maven模版Bug及解決辦法

    Maven模版Bug及解決辦法

    默認,會幫我們創(chuàng)建src/main/resources 按照Maven的規(guī)范,Maven會有3個目錄,分別是: src/main/java : java源文件存放位置 src/main/resource : resource資源,如配置文件等 src/test/java : 測試代碼源文件存放位置
    2016-04-04
  • 帶你玩轉(zhuǎn)Kafka之初步使用

    帶你玩轉(zhuǎn)Kafka之初步使用

    最近開發(fā)的項目中,kafka用的比較多,為了方便梳理,所以記錄一些關(guān)于kafka的文章,這篇文章主要給大家介紹了關(guān)于Kafka初步使用的相關(guān)資料,需要的朋友可以參考下
    2021-11-11

最新評論

洛浦县| 丹棱县| 如皋市| 保亭| 江阴市| 田阳县| 土默特左旗| 蓝田县| 普兰县| 永胜县| 六安市| 安宁市| 石阡县| 屏东县| 西青区| 诏安县| 两当县| 新宁县| 尼木县| 临泉县| 南通市| 忻城县| 宜兰县| 长治县| 孝义市| 理塘县| 库尔勒市| 黔南| 台中县| 伊川县| 保山市| 乌鲁木齐市| 兴安盟| 霍州市| 含山县| 嘉黎县| 甘孜县| 宜丰县| 富蕴县| 金溪县| 抚州市|