如何使用Ajax调用将jQuery Array传递给Spring?

时间:2013-11-04 08:52:36

标签: javascript jquery ajax spring

这是我的jQuery数组 - ansList

$("#saveAndSubmitButton").click(function(){
    var ansList=[];
    var i=0;
    for(i=0;i<queListSize;i++){
        if($("#value1"+i).is(':checked')){
            ansList.push("yes");
        }
        else if($("#value2"+i).is(':checked')){
            ansList.push("no");
        }
    }       
    goToSaveAndSubmitAction(ansList);
    }
});

function goToSaveAndSubmitAction(answersList){

var inputForSaveAndSubmit={
    ansList:answersList 
};
$.ajax({
    type:"POST",
    url:"../../restful/workflow/saveAndSubmitAction",
    data:inputForSaveAndSubmit,
    dataType:"json",
    success: function(jsonData){
        if(jsonData.success){
           alert('Inside Success');

        }


    },
    error:function (XMLHttpRequest, textStatus, errorThrown) {
          // showAlertMessage("error",textStatus);
    }
});
}

在Spring中,我的方法签名是

@RequestMapping(value="/workflow/saveAndSubmitAction")
public @ResponseBody String  saveAndSubmitAction(@RequestParam(value="ansList",
    required=false) String[] ansList ){
}

当我调试此代码以查看是否在ansList中填充了任何值时,我为ansList获取了null ...

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

你只需要让jQuery使用传统的编码方法。

$.ajax({
    type:"POST",
    url:"../../restful/workflow/saveAndSubmitAction",
    data:$.param(inputForSaveAndSubmit, true),    ,
    dataType:"json",
    success: function(jsonData){
       if(jsonData.success){
          alert('Inside Success');
       }
   },
   error:function (XMLHttpRequest, textStatus, errorThrown) {
      // showAlertMessage("error",textStatus);
   }
});

或在提交XHR

之前调用此方法
jQuery.ajaxSettings.traditional = true;