Heim  >  Artikel  >  Web-Frontend  >  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

亚连
亚连Original
2018-05-28 15:02:391683Durchsuche

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 Listf7e83be87db5cd2d9a8a0b8117b38cd4, List4c8e0c17c3bd7e0081bb17cc795e1984, Lista06c5c2dfccfdea21bf0b155d9343663>, User[] und User (Bean enthält List) empfangen:

Receive Listf7e83be87db5cd2d9a8a0b8117b38cd4

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){ 
  … 
 } 
});

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) { 
   … 
 } 
}

Receives List4c8e0c17c3bd7e0081bb17cc795e1984, User[]-Sammlungsparameter:


1. Benutzerentitätsklasse:

public class User { 
  private String name; 
 private String pwd; 
 //省略getter/setter 
}

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){ 
  … 
 } 
});

3. Controller-Methode:



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

Wenn Sie das User[]-Array erhalten möchten, müssen Sie nur den Parametertyp von saveUsers in @RequestBody User[] userArray ändern.

Erhält Lista06c5c2dfccfdea21bf0b155d9343663> 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){ 
  … 
 } 
});

2. Controller-Methode:



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

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 
}

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){ 
  … 
 } 
});

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(); 
  … 
 } 
}

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!

Stellungnahme:
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