Dieses Mal zeige ich Ihnen, wie Sie js verwenden, um JSON auf den Controller zu übertragen. Was sind die Vorsichtsmaßnahmen für die Übertragung von JSON auf den Controller? Hier ist ein praktischer Fall.
Wenn Spring MVC den Sammlungs- Anforderungsparameter empfängt, muss @RequestBody vor dem Sammlungsparameter der Controller-Methode hinzugefügt werden, und der von @RequestBody standardmäßig empfangene Enctype (MIME-Codierung) ist application/json. Daher müssen Sie beim Senden einer POST-Anfrage die Anforderungsheaderinformationen festlegen, da Spring MVC diese sonst beim Parsen der Sammlung nicht automatisch in JSON-Daten umwandelt und dann in die entsprechende Sammlung analysiert Anforderungsparameter.
Im Folgenden finden Sie Beispiele für komplexere Sammlungsparameter, die List, List, List
Receive List
1 >2. Controller-Methode:
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){
…
}
});
Nach dem Login kopieren
Receive List, User[]-Erfassungsparameter:
1. Benutzerentitätsklasse:
@Controller
@RequestMapping("/catalog.do")
public class CatalogController {
@RequestMapping(params = "fn=deleteCatalogSchemes")
@ResponseBody
public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") List<String> idList,Boolean isBatch) {
…
}
}
Nach dem Login kopieren
2. Seiten-JS-Code:
public class User {
private String name;
private String pwd;
//省略getter/setter
}
Nach dem Login kopieren
3. Controller-Methode:
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){
…
}
});
Nach dem Login kopieren
Nach dem Login kopieren
Wenn Sie das User[]-Array erhalten möchten, müssen Sie nur den Parametertyp von saveUsers in @RequestBody User[] ändern userArray.
Erhält List