Maison > interface Web > js tutoriel > le corps du texte

Exemple de spirngmvc js transmettant des paramètres json complexes au contrôleur

亚连
Libérer: 2018-05-28 15:02:39
original
1682 Les gens l'ont consulté

Ci-dessous, je vais partager avec vous un exemple de spirngmvc js transmettant des paramètres json complexes au contrôleur. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde.

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. L'enctype (encodage MIME) reçu par @RequestBody par défaut est application/json, il est donc obligatoire. lors de l'envoi d'une requête POST, définissez les informations d'en-tête de la requête, sinon Spring MVC ne les convertira pas automatiquement en données JSON, puis les analysera dans la collection correspondante lors de l'analyse des paramètres de la requête de collection.

Voici des exemples de paramètres de collection plus complexes qui reçoivent List, List, List>, User[] et User (le bean contient List) :

Paramètres de la collection de liste de réception :

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){ 
  … 
 } 
});
Copier après la connexion


2. Méthode du contrôleur :


@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=deleteCatalogSchemes") 
 @ResponseBody 
 public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") List<String> idList,Boolean isBatch) { 
   … 
 } 
}
Copier après la connexion


Liste de réception, Paramètres de collection Utilisateur[] :

1. :


public class User { 
  private String name; 
 private String pwd; 
 //省略getter/setter 
}
Copier après la connexion


2. Code js de la page :


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){ 
  … 
 } 
});
Copier après la connexion
Copier après la connexion


3. Méthode du contrôleur :


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


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

Reçoit les paramètres de collection List> :

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){ 
  … 
 } 
});
Copier après la connexion
Copier après la connexion


2. Méthode du contrôleur :


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


Paramètres de la collection Recevoir l'utilisateur (le bean contient une liste) :

1. Classe d'entité utilisateur :


public class User { 
 private String name; 
 private String pwd; 
 private List<User> customers;//属于用户的客户群 
 //省略getter/setter 
}
Copier après la connexion


2. Code js de la page :


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){ 
  … 
 } 
});
Copier après la connexion


3. :


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

Ce qui précède est ce que j'ai compilé pour vous. J'espère qu'il vous sera utile à l'avenir.

Articles associés :

Comment créer un objet ajax et être compatible avec plusieurs navigateurs

Requêtes Ajax imbriquées dans Ajax requêtes Exemple de code

Utilisez la technologie Ajax pour compléter la fonction de connexion à la page d'accueil via l'objet XMLHttpRequest

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!