Heim > Web-Frontend > js-Tutorial > Hauptteil

js implementiert die Übergabe komplexer JSON-Parameter an den Controller

小云云
Freigeben: 2018-03-30 09:39:48
Original
1599 Leute haben es durchsucht

Wenn Spring MVC Sammlungsanforderungsparameter empfängt, muss @RequestBody vor den Sammlungsparametern der Controller-Methode hinzugefügt werden. Der von @RequestBody standardmäßig empfangene Enctype (MIME-Codierung) ist application/json, daher muss der Anforderungsbericht vorhanden sein Wird beim Senden einer POST-Anfrage festgelegt, andernfalls konvertiert Spring MVC diese nicht automatisch in JSON-Daten und analysiert sie dann beim Parsen der Sammlungsanforderungsparameter in die entsprechende Sammlung.

Im Folgenden sind einige relativ komplexe Sammlungen aufgeführt, die die Parameter List, List, List>, User[] und User (Bean enthält Liste) erhalten Beispiel:

empfängt den List-Code der Seite:

2 >Receive List, User[]-Sammlungsparameter:
var idList = new Array(); 
idList.push(“1”); 
idList.push(“2”); 
idList.push(“3”); 
var isBatch = false; 
$.ajax({ 
 type: "POST", 
 url: "<%=path%>/catalog.do?fn=deleteCatalogSchemes", 
 dataType: &#39;json&#39;, 
 data: {"idList":idList,"isBatch":isBatch}, 
 success: function(data){ 
  … 
 }, 
 error: function(res){ 
  … 
 } 
});
Nach dem Login kopieren

1. Benutzer-Entitätsklasse:

@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=deleteCatalogSchemes") 
 @ResponseBody 
 public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") List<String> idList,Boolean isBatch) { 
   … 
 } 
}
Nach dem Login kopieren

2. Seiten-JS-Code:

3 . Controller-Methode:
public class User { 
  private String name; 
 private String pwd; 
 //省略getter/setter 
}
Nach dem Login kopieren

Wenn Sie das User[]-Array erhalten möchten, müssen Sie nur den Parametertyp von saveUsers in @RequestBody User[] userArray ändern.
var userList = new Array(); 
userList.push({name: "李四",pwd: "123"}); 
userList.push({name: "张三",pwd: "332"}); 
$.ajax({ 
 type: "POST", 
 url: "<%=path%>/catalog.do?fn=saveUsers", 
 data: JSON.stringify(userList),//将对象序列化成JSON字符串 
 dataType:"json", 
 contentType : &#39;application/json;charset=utf-8&#39;, //设置请求头信息 
 success: function(data){ 
  … 
 }, 
 error: function(res){ 
  … 
 } 
});
Nach dem Login kopieren
Nach dem Login kopieren

Receive List> Sammlungsparameter:

@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=saveUsers") 
 @ResponseBody 
 public AjaxJson saveUsers(@RequestBody List<User> userList) { 
  … 
 } 
}
Nach dem Login kopieren
1. Seiten-JS-Code (Benutzerobjekt wird nicht benötigt):

2. Controller-Methode:

Benutzer-Sammlungsparameter (Bean enthält Liste):
var userList = new Array(); 
userList.push({name: "李四",pwd: "123"}); 
userList.push({name: "张三",pwd: "332"}); 
$.ajax({ 
 type: "POST", 
 url: "<%=path%>/catalog.do?fn=saveUsers", 
 data: JSON.stringify(userList),//将对象序列化成JSON字符串 
 dataType:"json", 
 contentType : &#39;application/json;charset=utf-8&#39;, //设置请求头信息 
 success: function(data){ 
  … 
 }, 
 error: function(res){ 
  … 
 } 
});
Nach dem Login kopieren
Nach dem Login kopieren

1. Benutzer-Entitätsklasse:

@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=saveUsers") 
 @ResponseBody 
 public AjaxJson saveUsers(@RequestBody List<Map<String,Object>> listMap) { 
  … 
 } 
}
Nach dem Login kopieren

2 🎜>

3. Controller-Methode:

public class User { 
 private String name; 
 private String pwd; 
 private List<User> customers;//属于用户的客户群 
 //省略getter/setter 
}
Nach dem Login kopieren

Verwandte Empfehlungen:

var customerArray = new Array(); 
customerArray.push({name: "李四",pwd: "123"}); 
customerArray.push({name: "张三",pwd: "332"}); 
var user = {}; 
user.name = "李刚"; 
user.pwd = "888"; 
user. customers = customerArray; 
$.ajax({ 
 type: "POST", 
 url: "<%=path%>/catalog.do?fn=saveUsers", 
 data: JSON.stringify(user),//将对象序列化成JSON字符串 
 dataType:"json", 
 contentType : &#39;application/json;charset=utf-8&#39;, //设置请求头信息 
 success: function(data){ 
  … 
 }, 
 error: function(res){ 
  … 
 } 
});
Nach dem Login kopieren

ASP.NET zum Abrufen von Controller, URL und Aktion in MVC Erklärung der Methode
@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=saveUsers") 
 @ResponseBody 
 public AjaxJson saveUsers(@RequestBody User user) { 
  List<User> customers = user.getCustomers(); 
  … 
 } 
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonjs implementiert die Übergabe komplexer JSON-Parameter an den Controller. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage