我正在尝试向我的弹簧控制器发送对象数组。
首先,我在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的值?
答案 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”的控制器网址中