2012-01-13 15 views
4

私はJQueryのpost()を使用していますが、私のサーブレットはパラメータとして渡す配列を見ません。私のサーブレットで

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

私のjavascriptのは、このようになります出力

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

{モード=挿入}私は「

また、リート

$.post('action.do', {"arrayData[]":myArray, "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 
    } 
}); 
関連する問題