>웹 프론트엔드 >JS 튜토리얼 >복잡한 json 매개변수를 컨트롤러에 전달하는 spirngmvc js의 예

복잡한 json 매개변수를 컨트롤러에 전달하는 spirngmvc js의 예

亚连
亚连원래의
2018-05-28 15:02:391744검색

아래에서는 복잡한 json 매개변수를 컨트롤러에 전달하는 spirngmvc js의 예를 공유하겠습니다. 이는 좋은 참조 값을 갖고 있으며 모든 사람에게 도움이 되기를 바랍니다.

Spring MVC가 컬렉션 요청 매개변수를 수신하면 Controller 메소드의 컬렉션 매개변수 앞에 @RequestBody를 추가해야 하며, @RequestBody가 기본적으로 수신하는 enctype(MIME 인코딩)은 application/json이므로 요청 메시지에는 다음이 필요합니다. POST 요청을 보낼 때 설정해야 합니다. 그렇지 않으면 Spring MVC는 컬렉션 요청 매개변수를 구문 분석할 때 이를 자동으로 JSON 데이터로 변환한 다음 해당 컬렉션으로 구문 분석하지 않습니다.

다음은 List, List, List>, User[], User(bean에 List 포함)를 수신하는 더 복잡한 컬렉션 매개변수의 예입니다.

Receive List

1. 페이지 js 코드:


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: &#39;json&#39;, 
 data: {"idList":idList,"isBatch":isBatch}, 
 success: function(data){ 
  … 
 }, 
 error: function(res){ 
  … 
 } 
});


2. reee


수신 목록< ; User>, User[] 컬렉션 매개변수:


1. 사용자 엔터티 클래스:

@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=deleteCatalogSchemes") 
 @ResponseBody 
 public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") List<String> idList,Boolean isBatch) { 
   … 
 } 
}


2. 페이지 js 코드:


public class User { 
  private String name; 
 private String pwd; 
 //省略getter/setter 
}


3. 컨트롤러 메서드:


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 : &#39;application/json;charset=utf-8&#39;, //设置请求头信息 
 success: function(data){ 
  … 
 }, 
 error: function(res){ 
  … 
 } 
});

User[] 배열을 받으려면 saveUsers의 매개변수 유형을 @RequestBody User[] userArray로 변경하기만 하면 됩니다.

수신 목록a06c5c2dfccfdea21bf0b155d9343663> 수집 매개변수:

1.페이지 js 코드(사용자 개체가 필요하지 않음):

@Controller 
@RequestMapping("/catalog.do") 
public class CatalogController { 
 
 @RequestMapping(params = "fn=saveUsers") 
 @ResponseBody 
 public AjaxJson saveUsers(@RequestBody List<User> userList) { 
  … 
 } 
}


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 : &#39;application/json;charset=utf-8&#39;, //设置请求头信息 
 success: function(data){ 
  … 
 }, 
 error: function(res){ 
  … 
 } 
});


수신 사용자(빈에 목록 포함) 수집 매개변수:


1 사용자 엔터티 클래스:

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


2 .페이지 js 코드:


public class User { 
 private String name; 
 private String pwd; 
 private List<User> customers;//属于用户的客户群 
 //省略getter/setter 
}


3. 컨트롤러 방법:


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 : &#39;application/json;charset=utf-8&#39;, //设置请求头信息 
 success: function(data){ 
  … 
 }, 
 error: function(res){ 
  … 
 } 
});
위 내용은 모든 사람에게 도움이 되기를 바랍니다. 미래.

관련 기사:


Ajax 객체를 생성하고 여러 브라우저와 호환되는 방법

Ajax 요청 중첩 Ajax 요청 샘플 코드

Ajax 기술을 사용하여 XMLHttpRequest 객체를 통해 홈페이지 로그인 기능 완성

위 내용은 복잡한 json 매개변수를 컨트롤러에 전달하는 spirngmvc js의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.