将对象数组从JavaScript传递到spring mvc控制器

时间:2014-09-26 06:38:31

标签: jquery ajax json spring-mvc

我是JavaScript和jQuery的新手。我正在动态创建行的对象,在我的jsp中单击复选框,如下所示:

 var objects={};
 var i=0;
 $(document).on('click', 'input[type="checkbox"]', function() {
       var bar1 = $(this).closest("tr").find(".bar").val();
       var dda1 = $(this).closest("tr").find(".dda").text();
       objects[i] = {data:dda1,bar:bar1};
       i++;
       $('#bar').val(JSON.stringify(objects));
 });

首先将它设置为这样的隐藏输入类型......

  $('#bar').val(JSON.stringify(objects));

我能够使用以下控制器使用隐藏类型读取它...

@RequestMapping(value="/applypage",method= RequestMethod.POST)   

public String ListRequest(@RequestParam("bar") String object )
{
    System.out.println(object);
    return "applypage";
}

给了我以下字符串......

{"0":{"data":"Data3","bar":"N"},"1":{"data":"Data1","bar":"Y"},"2":{"data":"Data4","bar":"N"},"3":{"data":"Data6","bar":"N"}}

但是在google搜索并参考了许多教程之后我发现我必须使用ajax然后我尝试了这段代码......

var data={'objects':JSON.stringify(objects)};
$.ajax({
            type: "post",
            url: "applypage", //your valid url
            headers : {
                'Accept' : 'application/json',
                'Content-Type' : 'application/json'
            },
            data: data,
            success: function(result) {
                alert("success");
            },
            error: function(e){
                alert('failure');
            }
 });

但是我无法通过ajax读取这个值......

任何人都可以帮助我,我需要编写控制器的代码来读取JSON值。

1 个答案:

答案 0 :(得分:0)

在您的ajax代码中添加dataType: "json",

$.ajax({
            type: "post",
            url: "applypage", //your valid url
            headers : {
                'Accept' : 'application/json',
                'Content-Type' : 'application/json'
            },
            data: data,
            dataType: "json"
            success: function(result) {
                alert("success");
            },
            error: function(e){
                alert('failure');
            }
 });