2012-01-13 2 views
4

JQuery의 post()을 사용하고 있지만 서블릿에 매개 변수로 전달하는 배열이 표시되지 않습니다. 내 서블릿에서

var myArray = ['1', '2']; 
$.post('action.do', {"arrayData":myArray, "mode":"insert"}); 

:

내 자바 스크립트는 다음과 같습니다 출력

System.out.println(request.getParameterMap()); 

:

{모드 = 삽입} 나 '

~시키다 리 에드

$.post('action.do', {"arrayData[]":myArray, "mode":"insert"}); 

$.post('action.do', {"arrayData":$(myArray).serializeArray(), "mode":"insert"}); 

답변

3

이 문제가 발생했습니다. 나는 "arrayData"매개 변수 서버 측에 대괄호를 추가하여이를 해결했습니다. 클라이언트에서 :

$.post('action.do', {arrayData:myArray, mode:"insert"}); 

, 노트, 클라이언트 측에 arrayData 매개 변수는 괄호없이하시기 바랍니다. 서버에서

: 이것은 나를 위해 일한

String[] arrayData=request.getParameterValues("arrayData[]"); 

!

0

봅니다

$.post('action.do', {"arrayData":myArray, "mode":"insert"}); 

와 서버에 사용하는

다음
String[] arrayData=request.getParameterValues("arrayData"); 
+0

이 작업을 수행하기 위해 매개 변수 맵은'{mode = insert, [email protected]} '또는 유사한 내용을 출력합니다. 서블릿은'arrayData' 매개 변수를 문자열이나 문자열 배열 또는 다른 종류의 객체로 받아들이지 않습니다. – bdares

+0

내 경험에 따르면 이것이 작동하지 않을 것입니다. –

0

내가 here에서 json2.js를 사용하여 내 서블릿에 JSON을 통과하는 방법입니다 . 그런 다음 서블릿에서 gson 또는 jackson을 사용하여 json을 자동으로 적합한 Java 클래스의 인스턴스로 자동 변환 할 수 있습니다.

var jsonData = $("#myform").toObject(); 
var strJson = JSON.stringify(jsonData); 
$.ajax({ 
    cache:false, 
    type: 'POST', 
    url: myUrl, 
    data:strJson, 
    contentType: "application/json", 
    success: function(data) {    
      //mySuccessHanlder 
    } 
});