一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - spring mvc利用ajax向controller傳遞對象的方法示例

spring mvc利用ajax向controller傳遞對象的方法示例

2020-12-02 10:44raledong Java教程

這篇文章主要給大家介紹了關于spring mvc利用ajax向controller傳遞對象的相關資料,文中通過示例代碼將步驟介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來跟著小編一起學習學習吧。

前言

最近因為工作的需要,在寫一個基于springmvc+spring+mybatis的項目,其中涉及用ajaxcontroller發送數據的功能。因為不想使用spring的form標簽,所以想看看有沒有方法將ajax中的json數據直接轉化為controller方法中的對象接收并處理。以下將逐漸介紹各種不同情況下傳遞json數據并封裝的方法,下面話不多說,一起來看看詳細的介紹:

基礎類型

如果傳遞的json數據為基礎類型(Int,String等)的話,則只需要用@RequestParam標注方法中的參數就行了。

ajax代碼

?
1
2
3
4
5
6
7
8
9
$.ajax({
 url : "someurl",
 type : "POST",
 dataType : "JSON",
 data : {"name":"test", "password":"testpassword"},
 success : function (data) {
  console.log(data)
 }
})

java代碼

?
1
2
3
4
@RequestMapping("someurl")
public @ResponseBody SomeData basicType(@RequestParam String name, @RequestParam String password){
 //具體方法
}

在這里@ResponseBody說明返回的是一個對象。@RequestParam的用法還很多,具體可以去參考springmvc的文檔

簡單的對象類型

簡單的對象類型是指,在對象中不包含復雜的數據結構類似于list,map等。在這里可以使用標簽@ModelAttribute來直接將JSON數據封裝成對象。

假設我們有一個用戶對象,用戶的屬性包括name,age

?
1
2
3
4
5
public class User{
 private String name;
 private int age;
 //getters and setters
}

ajax傳輸的數據如下

?
1
2
3
4
5
6
7
8
9
10
11
12
$.ajax({
 url : "someurl",
 type : "POST",
 dataType : "JSON",
 data : {
  'name : 'test',
  'age' : 10
 },
 success : function (data) {
  console.log(data)
 }
})

controller中的代碼如下

?
1
2
3
4
@RequestMapping("someurl")
public @ResponseBody SomeData objects(@ModelAttribute User user){
//具體方法
}

springmvc 暫時不支持接收并生成多個modelAttribute

數組類型

有些情況下,可能需要傳遞一組相同類型的數據,比如添加一組用戶的信息。這是可以通過ajax傳遞一個數組給controller方法。具體情況可以參考這個回答

這個回答給的非常的詳細具體,需要補充的是,接收端的數據結構無論是List<T>或是T[]都可以成功獲得數組數據。

復雜的對象

但是上面的方法有一個問題,就是只能接收純數組數據。假設一個對象,比如用戶,該用戶下的屬性除了包含name(名稱),age(年齡)之外,還有一個聯系方式屬性contacts(List<String>) ,如何才能將既包含基本類型又包含數組類型的JSON數據直接封裝成對象呢?這里就需要標簽@RequestBody

ajax代碼如下,需要注意的是,這里需要用JSON.stringfy()方法將json數據轉化成字符流,添加至requestbody中。且在ajax方法中必須指明contentTypedataType屬性。

?
1
2
3
4
5
6
7
public class User{
 private String name;
 private int age;
 private List<String> contacts;
 //或是 private String[] contacts;
 //getters and setters
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$.ajax({
 var user = {
  'name' : 'test',
  'age ' : 10,
  'contacts' : ['12313','123213123']
 }
 url : "someurl",
 type : "POST",
 dataType : "JSON",
 contentType:"application/json",
 data : JSON.stringify(user),
 success : function (data) {
  console.log(data)
 }
})

java代碼如下

?
1
2
3
4
@RequestMapping("someurl")
public @ResponseBody SomeData complicateObject(@RequestBody User user){
 //方法詳情
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://segmentfault.com/a/1190000009600375

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一卡2卡3卡4卡公司科普 | 美国69xxxx59| 草莓视频丝瓜 | np高h疯狂黄暴宫口 narutomanga玖辛奈之乳 | 亚洲国产情侣一区二区三区 | 日韩免费视频播放 | 亚洲成av人影院 | 久久视频在线视频观看天天看视频 | chinese456老人gay| 色愉拍亚洲偷自拍 | 国产目拍亚洲精品一区二区三区 | 国产精品高清视亚洲一区二区 | 国模孕妇季玥全部人体写真 | 奇米影视7777久久精品 | 草免费视频 | 国产亚洲综合精品一区二区三区 | 大又大又黄又爽免费毛片 | 午夜伦午夜伦锂电影 | 国产成人精品高清不卡在线 | 黑帮少爷爱上我第8集在线观看 | 免费在线观看网址入口 | 无限资源在线观看高清 | 韩国免费特一级毛片 | 草草影院免费 | 欧美ⅹxxxx视频 | 美女自插 | 青青草人人 | 日本免费在线播放 | 恩爱夫妇交换小说 | yy6080午夜国产免费福利 | 花房乱爱在线观看 | 精品亚洲一区二区三区在线播放 | 娇妻被又大又粗又长又硬好爽 | 无限在线观看免费入口 | 性欧美xxxxx护士另类 | 国产caoni555在线观看 | 99精品全国免费7观看视频 | 女人把扒开给男人爽的 | 性直播免费 | 久久嫩草影院网站 | 美女禁区视频无遮挡免费看 |