Cette fois, je vais vous apporter une analyse des étapes de transmission des paramètres json au contrôleur via js. Quelles sont les précautions pour transmettre les paramètres json au contrôleur via js. Voici des cas réels, voyons. jetez un oeil.
Lorsque Spring MVC reçoit le paramètre de requête de collection , il doit ajouter @RequestBody avant le paramètre de collection de la méthode Controller, et l'enctype (encodage MIME) reçu par @RequestBody par défaut est application/json. Par conséquent, lors de l'envoi d'une requête POST, vous devez définir 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 de la collection. paramètres de requête.
Voici des exemples de paramètres de collection plus complexes qui reçoivent 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: 'json', data: {"idList":idList,"isBatch":isBatch}, success: function(data){ … }, error: function(res){ … } });
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) { … } }
Liste de réception
1. Classe d'entité utilisateur :
public class User { private String name; private String pwd; //省略getter/setter }
2. >
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 : 'application/json;charset=utf-8', //设置请求头信息 success: function(data){ … }, error: function(res){ … } });
Si vous souhaitez recevoir le tableau User[], il vous suffit de modifier le paramètre type de saveUsers Un @RequestBody User[] userArray fera l'affaire.
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=saveUsers") @ResponseBody public AjaxJson saveUsers(@RequestBody List<User> userList) { … } }
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 : 'application/json;charset=utf-8', //设置请求头信息 success: function(data){ … }, error: function(res){ … } });
Recevoir l'utilisateur (à l'intérieur du bean Contains List) paramètres de collection :
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=saveUsers") @ResponseBody public AjaxJson saveUsers(@RequestBody List<Map<String,Object>> listMap) { … } }
1. Classe d'entité utilisateur :
public class User { private String name; private String pwd; private List<User> customers;//属于用户的客户群 //省略getter/setter }
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 : 'application/json;charset=utf-8', //设置请求头信息 success: function(data){ … }, error: function(res){ … } });
Je crois avoir lu le cas dans cet article Vous maîtrisez la méthode. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=saveUsers") @ResponseBody public AjaxJson saveUsers(@RequestBody User user) { List<User> customers = user.getCustomers(); … } }
Comment Angular effectue le développement du rendu côté serveur
Explication détaillée du cas de vue implémentant le fonction de sélection totale et de sélection inverse
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!