如何在$ http请求中传递多个类对象

时间:2017-06-09 05:43:18

标签: javascript java angularjs http spring-mvc

我的要求是在角$ http服务中传递多个类对象(将使用请求参数映射或在rest控制器中请求正文)。

我无法在请求体中传递类对象,因为一个http调用只有一个请求体。

当我试图在$ http param中传递类对象时,我遇到了类转换异常。

有没有办法在单个$ http调用中传递多个对象?

@RequestMapping(value = "CommitObject", method = RequestMethod.POST)
public void Commit(@RequestParam(value = "clazz") final String clazz,
        @RequestParam(value = "Id") final String modelId,@RequestBody LinkedHashMap<String, Object> obj) {
    mService.Commit(Id,clazz workingmodelObj);
}

3 个答案:

答案 0 :(得分:3)

我尝试了很多次但总是失败。为了克服这个问题,我使用创建Java Bean并将两个对象封装到其中,然后在@RequestBody接受它。

你的包装应该是这样的:

public class SampleWrapper {
    private Object1 object1;
    private Object2 object2;
    //getters setters and constructors go here
}

你的构造函数应该如下所示:

@RequestMapping(value = "/url",method= RequestMethod.POST)
public String getRequest(@RequestBody SampleWrapper wrapper) {
    Object1 o1 = wrapper.getObject1();
    Object2 o2 = wrapper.getObject2();
}

JSON请求应如下所示:

 {
 "object1" : {//object1 body },
 "object2" : {//object2 body }
 }

答案 1 :(得分:0)

如果您正在尝试发出$ http.post请求,则可以创建要尝试发送的对象数组,然后将其附加到请求中。

$ http.put('ROUTE HERE',对象数组);

答案 2 :(得分:0)

您可以通过在formData

中附加对象来传递对象

Angular side

Inappbrowser

春天

InAppBrowser