Heim > Web-Frontend > js-Tutorial > Beispiel für die Übergabe komplexer JSON-Parameter durch spirngmvc js an den Controller

Beispiel für die Übergabe komplexer JSON-Parameter durch spirngmvc js an den Controller

亚连
Freigeben: 2018-05-28 15:02:39
Original
1747 Leute haben es durchsucht

Im Folgenden werde ich Ihnen ein Beispiel für die Übergabe komplexer JSON-Parameter durch spirngmvc js an den Controller vorstellen. Es hat einen guten Referenzwert und ich hoffe, dass es für alle hilfreich ist.

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 und ist daher erforderlich Legen Sie beim Senden einer POST-Anfrage die Informationen zum Anforderungsheader fest. Andernfalls konvertiert Spring MVC diese nicht automatisch in JSON-Daten und analysiert sie dann beim Parsen der Sammlungsanforderungsparameter in die entsprechende Sammlung.

Im Folgenden finden Sie Beispiele für komplexere Sammlungsparameter, die List, List, List>, User[] und User (Bean enthält List) empfangen:

Receive List

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

2. Controller-Methode:



@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

Receives List, User[]-Sammlungsparameter:


1. Benutzerentitätsklasse:

public class User { 
  private String name; 
 private String pwd; 
 //省略getter/setter 
}
Nach dem Login kopieren

2. Seiten-JS-Code:



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

3. Controller-Methode:



@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=saveUsers") 
 @ResponseBody 
 public AjaxJson saveUsers(@RequestBody List<User> userList) { 
  … 
 } 
}
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.

Erhält List> Sammlungsparameter:


1. :

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

2. Controller-Methode:



@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

Erhält Benutzer-Sammlungsparameter (Bean enthält Liste):


1. Benutzerentitätsklasse:

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

2 :



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

3. Controller-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

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird. Verwandte Artikel:

So erstellen Sie ein Ajax-Objekt und sind mit mehreren Browsern kompatibel


In Ajax verschachtelte Ajax-Anfragen fordert Beispielcode an

Verwenden Sie die Ajax-Technologie, um die Anmeldefunktion für die Startseite über das XMLHttpRequest-Objekt abzuschließen


Das obige ist der detaillierte Inhalt vonBeispiel für die Übergabe komplexer JSON-Parameter durch spirngmvc js 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