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 List, List, List
reçoit le paramètre de collection List :
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: 'json',
data: {"idList":idList,"isBatch":isBatch},
success: function(data){
…
},
error: function(res){
…
}
});
Copier après la connexion
2. >Receive List, Paramètres de collection User[] :
@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
1. Classe d'entité utilisateur :
2. Code js de la page :
public class User {
private String name;
private String pwd;
//省略getter/setter
}
Copier après la connexion
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 : 'application/json;charset=utf-8', //设置请求头信息
success: function(data){
…
},
error: function(res){
…
}
});
Copier après la connexion
Copier après la connexion
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) {
…
}
}
Copier après la connexion
Receive List