将对象数组发送到Spring MVC

时间:2018-08-03 15:51:18

标签: jquery arrays ajax spring

我正在尝试向我的弹簧控制器发送对象数组。

首先,我在javascript中声明一个数组

var ar = new Array();

然后我创建一个具有名称和数量的对象

var obj = { name: "", qty: "" };

用户在html页面的输入字段中输入一些数据。当他们单击添加按钮时,此数据将被放入对象中。

obj = { name: $("#name").val(), qty: $("#qty").val() }

然后我拿走对象并将其推入我创建的数组中

ar.push(obj);

所以现在我有了要发送给spring控制器的对象数组。

var posting = $.post("<%=request.getContextPath()%>/submitArray.htm", {"ar[]": ar});

在我的弹簧控制器中,我请求参数

@RequestParam("ar[]") Object[] objectArray

我确实得到了结果。它是一个对象数组,但我不知道如何从该对象获取名称或数量。

我已经在调试器中打开了变量,它说

[[object Object], [object Object]]

如何从对象中获取name和qty的值?

1 个答案:

答案 0 :(得分:0)

创建一个Java类来定义模型对象,即

public class Model {
    private String name;
    private Double qty;

    //getter setter goes here
}

然后编写如下所示的rest控制器:

@RestController
public class MyController {
    @PostMapping(value = "/submitArray", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public ResponseEntity process(@RequestBody List<Model> modelList) {
        for (Model model : modelList) {
            System.out.println(model.getName());
            System.out.println(model.getQty());
        } 
    }
}

现在将您的JavaScript数组发布到标头Content-Type为“ application / json”的控制器网址中