SpringMVC를 사용할 때 배열 참조 유형을 전달하려고 합니다. SpringMVC에는 배열 전달에 대한 몇 가지 제한 사항이 있습니다.
테스트 후: SpringMVC는 1차원 배열에 대한 매개 변수 전달을 지원하지만 다중 배열에 대한 매개 변수 전달은 지원하지 않습니다. -차원 배열. 다차원 배열을 전달하려면 다음과 같은 다른 방법을 사용해야 합니다. 1. 다차원 배열을 1차원 배열로 분할합니다. 2. 다차원 배열을 다음과 같이 변경합니다. 3. 또는 문자열로 변경하여 수신 시간 등에 처리하거나, 4 또는 모든 배열의 값을 연결하여 전송합니다(예: data=1&data=2&data=3, 세 배열의 값) 이 방법은 매우 유연합니다.
1 SpringMVC는 1차원 배열을 전달합니다. 배열 유형을 전달할 때 @requestParam()에 값을 추가해야 합니다. 그렇지 않으면 HTTP 상태 400 - 필수 long[] 매개변수 'data'가 존재하지 않습니다 오류가 발생합니다.
예: @RequestParam(value = "data[]")long[] data
프런트엔드 요청:
var dataArr = new Array(); for(var i = 0; i < 10; i++){ dataArr.push(i); } $.ajax({ url : "test/arrayParam.shtml", data : { "datas" : dataArr }, dataType : "json", success : function(data) { alert(data); }, async : false }); }
백엔드 코드:
package com.pyc.search.view.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; /** * 创建时间:2014-12-24 上午11:52:00 * * @author zhangtianyou */ @Controller @RequestMapping("/test") public class TestController { @RequestMapping("/arrayParam") public @ResponseBody int test1(@RequestParam(value = "datas[]") long[] datas) { return datas.length; } }
2개의 다차원 배열 가능 1차원 배열로 변환되거나 백엔드에서 수신될 때 처리되는 문자열로 변환됩니다.
이상은 SpringMVC 배열 요청 전달 문제에 대한 내용과 해결 방법입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!