Im Folgenden werde ich Ihnen ein Beispiel für die Übergabe komplexer JSON-Parameter durch spirngmvc js an den Controller vorstellen. Es hat einen guten Referenzwert und ich hoffe, dass es für alle hilfreich ist.
Wenn Spring MVC Sammlungsanforderungsparameter empfängt, muss @RequestBody vor den Sammlungsparametern der Controller-Methode hinzugefügt werden. Der von @RequestBody standardmäßig empfangene Enctype (MIME-Codierung) ist application/json und ist daher erforderlich Legen Sie beim Senden einer POST-Anfrage die Informationen zum Anforderungsheader fest. Andernfalls konvertiert Spring MVC diese nicht automatisch in JSON-Daten und analysiert sie dann beim Parsen der Sammlungsanforderungsparameter in die entsprechende Sammlung.
Im Folgenden finden Sie Beispiele für komplexere Sammlungsparameter, die List
Receive List
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. Controller-Methode:
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=deleteCatalogSchemes") @ResponseBody public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") List<String> idList,Boolean isBatch) { … } }
Receives List
1. Benutzerentitätsklasse:
public class User { private String name; private String pwd; //省略getter/setter }
2. Seiten-JS-Code:
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){ … } });
3. Controller-Methode:
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=saveUsers") @ResponseBody public AjaxJson saveUsers(@RequestBody List<User> userList) { … } }
Wenn Sie das User[]-Array erhalten möchten, müssen Sie nur den Parametertyp von saveUsers in @RequestBody User[] userArray ändern.
Erhält List
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){ … } });
2. Controller-Methode:
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=saveUsers") @ResponseBody public AjaxJson saveUsers(@RequestBody List<Map<String,Object>> listMap) { … } }
Erhält Benutzer-Sammlungsparameter (Bean enthält Liste):
1. Benutzerentitätsklasse:
public class User { private String name; private String pwd; private List<User> customers;//属于用户的客户群 //省略getter/setter }
2 :
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){ … } });
3. Controller-Methode:
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=saveUsers") @ResponseBody public AjaxJson saveUsers(@RequestBody User user) { List<User> customers = user.getCustomers(); … } }
Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird. Verwandte Artikel:
So erstellen Sie ein Ajax-Objekt und sind mit mehreren Browsern kompatibelVerwenden Sie die Ajax-Technologie, um die Anmeldefunktion für die Startseite über das XMLHttpRequest-Objekt abzuschließen
Das obige ist der detaillierte Inhalt vonBeispiel für die Übergabe komplexer JSON-Parameter durch spirngmvc js an den Controller. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!