Heim > Web-Frontend > js-Tutorial > js übergibt JSON-Parameter an die Controller-Schrittanalyse

js übergibt JSON-Parameter an die Controller-Schrittanalyse

php中世界最好的语言
Freigeben: 2018-05-11 14:20:18
Original
1823 Leute haben es durchsucht

Dieses Mal werde ich die Schritte zum Übergeben von JSON-Parametern über js an den Controller analysieren. Was sind die Vorsichtsmaßnahmen für die Übergabe von JSON-Parametern an den Controller über js? Schauen Sie mal rein.

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>, User[] und User (Bean enthält List) empfangen:

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> Sammlungsparameter:

1. :

@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=saveUsers") 
 @ResponseBody 
 public AjaxJson saveUsers(@RequestBody List<User> userList) { 
  … 
 } 
}
Nach dem Login kopieren
2. 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
Erhält die Benutzersammlung (Bean enthält Liste). Parameter:

1. Benutzerentitätsklasse:

@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=saveUsers") 
 @ResponseBody 
 public AjaxJson saveUsers(@RequestBody List<Map<String,Object>> listMap) { 
  … 
 } 
}
Nach dem Login kopieren
2 >

public class User { 
 private String name; 
 private String pwd; 
 private List<User> customers;//属于用户的客户群 
 //省略getter/setter 
}
Nach dem Login kopieren
3. Controller-Methode:

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){ 
  … 
 } 
});
Nach dem Login kopieren
Ich glaube, Sie haben die Methode gemeistert, nachdem Sie den Fall in diesem Artikel gelesen haben. Bitte kommen Sie für weitere spannende Informationen. Achten Sie auf andere verwandte Artikel auf der chinesischen PHP-Website! Empfohlene Lektüre:

Wie Angular die serverseitige Rendering-Entwicklung durchführt

Detaillierte Erläuterung des Falles der Vue-Implementierung Alles auswählen und Umkehrauswahlfunktion

Das obige ist der detaillierte Inhalt vonjs übergibt JSON-Parameter an die Controller-Schrittanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage