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

SpringMVC Controller解析ajax參數(shù)過程詳解

 更新時間:2020年07月17日 12:00:59   作者:HuskySir  
這篇文章主要介紹了SpringMVC Controller解析ajax參數(shù)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

在使用ajax發(fā)送請求時,如果發(fā)送的JSON數(shù)據(jù)的參數(shù)是一個類中的不同屬性,在Controller類的方法中使用@RequestBody Object obj會直接封裝進obj對象中

例如:

前端部分代碼

JavaScript

<script language="JavaScript">
  function login(){
    var user_name = $("#user_name").val();           //用戶名
    var user_password = $("#user_password").val;      //用戶密碼

    $.ajax({
      url:"<%=path%>/User/Login",
      type:"POST",
      async: false,
      contentType:"application/json;charset=UTF-8",
      dataType:'json',
      data:JSON.stringify({"user_name":user_name,"user_password":user_password}), //將JSON對象轉(zhuǎn)為字符串
      success:function(data){

      }
    });
  }
</script>

form表單

<form>
  <div class="form-group">
    <label for="user_name" stype="display:inline;">用戶名:</label>
    <input id="user_name" type="text" class="form-control" style="display:inline;" autocomplete="off" />
  </div>
  <div class="form-group">
    <label for="user_password" style="display:inline;">用戶密碼:</label>
    <input id="user_password" type="text" class="form-control" style="display:inline;" autocomplete="off" />
  </div>
  <div class="col">
    <div class="col-md-4" style="text-align: right;">
      <button type="submit" class="btn btn-success" onclick="login()">登錄</button>
    </div>
  </div>
</form>

此時前端向后端傳入JSON數(shù)據(jù)

User類部分代碼

public class User implements Serializable {
  private Integer user_name;            //用戶名
  private String user_password;          //用戶密碼
  ......
}

Controller部分代碼

@Controller
@RequestMapping("/User")
public class UserController {

  @RequestMapping(value = "/Login",method = {RequestMethod.POST})
  public @ResponseBody Boolean Login(@RequestBody User user) {
    //此時user.getUser_name()就是前端的user_name
    //user.getUser_password()就是前端的user_password
    //根據(jù)輸入的用戶名及用戶密碼和數(shù)據(jù)庫對比判斷是否登錄成功,并返回一個布爾值告訴前端
    ······
    return true/false;
  }

如果此時ajax提交的JSON數(shù)據(jù)為

 data:JSON.stringify({"user_name":admin,"user_password":123)

在Controller內(nèi)加入輸出語句

public @ResponseBody Boolean Login(@RequestBody User user) {
  System.out.println(user.getUser_name());
  System.out.println(user.getUser_password());
  ······
  return true/false;
}

輸出的結(jié)果為

 admin
 123

但是,如果ajax發(fā)送的請求體中的參數(shù)并不是同一個類的不同屬性,應(yīng)該如何處理呢?

例如:

form表單中增加了一項驗證碼:verifycode。此時,假如ajax提交的JSON數(shù)據(jù)為

data:JSON.stringify({"user_name":admin,"user_password":123,"verifycode":666})

但是verifycode并不是User類中的屬性,不能由@RequestBody User user中的user接收

如果采用@RequestBody String body接收,輸出的將是JSON字符串

@RequestMapping(value = "/Login",method = {RequestMethod.POST})
  public @ResponseBody Boolean Login(@RequestBody String body) {
    //此時body是整個請求體的內(nèi)容
    System.out.println(body);
    //······
  }

輸出的結(jié)果為

 {"user_name":admin,"user_password":123,"verifycode":666}

但我們想拿到每個參數(shù)的對應(yīng)值,此時可以采用Map<String,String> map接收

@RequestMapping(value = "/Login",method = {RequestMethod.POST})
  public @ResponseBody Boolean Login(@RequestBody Map<String,String> map) {
    //此時map.get("user_name")就是前端的user_name
    System.out.println(map.get("user_name"));
    //map.get("user_password")就是前端的user_password
    System.out.println(map.get("user_password"));
    //map.get("verifycode")就是前端的verifycode
    System.out.println(map.get("verifycode"));
    ······
  }

輸出的結(jié)果為

 admin
 123
 666

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于java中構(gòu)造函數(shù)的一些知識詳解

    關(guān)于java中構(gòu)造函數(shù)的一些知識詳解

    下面小編就為大家?guī)硪黄P(guān)于java中構(gòu)造函數(shù)的一些知識詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • windows?java?-jar無法啟動jar包簡單的解決方法

    windows?java?-jar無法啟動jar包簡單的解決方法

    這篇文章主要介紹了windows?java?-jar無法啟動jar包簡單的解決方法,文中通過代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用java具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-12-12
  • DoytoQuery中關(guān)于N+1查詢問題解決方案詳解

    DoytoQuery中關(guān)于N+1查詢問題解決方案詳解

    這篇文章主要為大家介紹了DoytoQuery中關(guān)于N+1查詢問題解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Java中時間戳和時間的轉(zhuǎn)換方法代碼

    Java中時間戳和時間的轉(zhuǎn)換方法代碼

    這篇文章主要介紹了Java中時間戳和時間的轉(zhuǎn)換的相關(guān)資料,Java8中時間戳與日期時間對象之間的轉(zhuǎn)換是編程中常見的操作,通過時間字符串獲取時間對象也是其中的一種方法,需要的朋友可以參考下
    2025-03-03
  • SpringBoot在接收參數(shù)的七種方式詳解

    SpringBoot在接收參數(shù)的七種方式詳解

    這篇文章主要介紹了SpringBoot在接收參數(shù)的七種方式詳解,隨著前后端的分離,接口方式開發(fā)成為普遍的開發(fā)形式,前端相對于后端來說,常用的接口傳參方式就一定要了解和熟悉,下面?我們梳理了常用的七種?Controller層接受參數(shù)的方式,需要的朋友可以參考下
    2023-10-10
  • 解決mybatis-plus3.1.1版本使用lambda表達式查詢報錯的方法

    解決mybatis-plus3.1.1版本使用lambda表達式查詢報錯的方法

    這篇文章主要介紹了解決mybatis-plus3.1.1版本使用lambda表達式查詢報錯的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • SpringBoot錯誤處理機制以及自定義異常處理詳解

    SpringBoot錯誤處理機制以及自定義異常處理詳解

    這篇文章主要為大家詳細介紹了SpringBoot錯誤處理機制以及自定義異常處理,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • SpringCloud邁向云原生的步驟

    SpringCloud邁向云原生的步驟

    這篇文章主要介紹了SpringCloud怎么邁向云原生,通過本文我們來梳理一下Spring?Cloud的前世今生,以及未來云原生發(fā)展的趨勢,可以給這些RPC框架的演進帶來一些啟發(fā),感興趣的朋友跟隨小編一起看看吧
    2022-10-10
  • Java list亂序的實現(xiàn)三種方法

    Java list亂序的實現(xiàn)三種方法

    本文主要介紹了Java list亂序的實現(xiàn)三種方法,包含Collections.shuffle()方法,random和Stream API這三種,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Java spring事務(wù)及事務(wù)不生效的原因詳解

    Java spring事務(wù)及事務(wù)不生效的原因詳解

    在日常編碼過程中常常涉及到事務(wù),在前兩天看到一篇文章提到了Spring事務(wù),那么在此總結(jié)下在Spring環(huán)境下事務(wù)失效的幾種原因
    2021-09-09

最新評論

香格里拉县| 革吉县| 东平县| 武功县| 朝阳市| 沛县| 大悟县| 江陵县| 醴陵市| 阳东县| 永春县| 闽侯县| 扎鲁特旗| 龙井市| 伊春市| 台东市| 襄城县| 灯塔市| 甘德县| 资溪县| 嘉荫县| 西充县| 平潭县| 会东县| 望城县| 疏勒县| 韶山市| 辽宁省| 恩施市| 肃南| 万安县| 繁峙县| 肥城市| 志丹县| 伊川县| 米脂县| 阿拉善左旗| 南投市| 绥宁县| 天等县| 达孜县|