Maison >interface Web >js tutoriel >js implémente la transmission de paramètres json complexes au contrôleur

js implémente la transmission de paramètres json complexes au contrôleur

小云云
小云云original
2018-03-30 09:39:481633parcourir

Lorsque Spring MVC reçoit les paramètres de demande de collecte, il doit ajouter @RequestBody avant les paramètres de collection de la méthode Controller. Le type d'enc (codage MIME) reçu par @RequestBody par défaut est application/json, le rapport de demande doit donc être. défini lors de l'envoi d'informations d'en-tête de requête POST, sinon Spring MVC ne les convertira pas automatiquement en données JSON, puis ne les analysera pas dans la collection correspondante lors de l'analyse des paramètres de la demande de collection.

Voici quelques collections relativement complexes qui reçoivent les paramètres Listf7e83be87db5cd2d9a8a0b8117b38cd4, List4c8e0c17c3bd7e0081bb17cc795e1984, Lista06c5c2dfccfdea21bf0b155d9343663>, User[], User (bean contient List). exemple :

reçoit le paramètre de collection Listf7e83be87db5cd2d9a8a0b8117b38cd4 :

1. Code js de la page :

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. >Receive List4c8e0c17c3bd7e0081bb17cc795e1984, Paramètres de collection User[] :

@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=deleteCatalogSchemes") 
 @ResponseBody 
 public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") Listf7e83be87db5cd2d9a8a0b8117b38cd4 idList,Boolean isBatch) { 
   … 
 } 
}
1. Classe d'entité utilisateur :

2. Code js de la page :

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

3. . Méthode du contrôleur :

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

Si vous souhaitez recevoir le tableau User[], il vous suffit de modifier le type de paramètre de saveUsers en @RequestBody User[] userArray.

@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=saveUsers") 
 @ResponseBody 
 public AjaxJson saveUsers(@RequestBody List<User> userList) { 
  … 
 } 
}
Receive Lista06c5c2dfccfdea21bf0b155d9343663> paramètres de collection :

1. Code js de la page (l'objet utilisateur n'est pas nécessaire) :

2. Méthode du contrôleur :

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

Reçoit les paramètres de collection de l'utilisateur (le bean contient une liste) :

@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=saveUsers") 
 @ResponseBody 
 public AjaxJson saveUsers(@RequestBody Lista06c5c2dfccfdea21bf0b155d9343663> listMap) { 
  … 
 } 
}
1. Classe d'entité utilisateur :

2. 🎜>

public class User { 
 private String name; 
 private String pwd; 
 private List<User> customers;//属于用户的客户群 
 //省略getter/setter 
}
3. Méthode du contrôleur :

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){ 
  … 
 } 
});
Recommandations associées :

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

ASP.NET pour obtenir le contrôleur, l'URL et l'action dans MVC détaillé explication de la méthode

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn