2017-06-09 6 views
-2

私の要件は、角度$ httpサービスで複数のクラスオブジェクト(リクエストパラメータを持つリクエストボディまたは残りのコントローラのリクエストボディ)を渡すことです。

1つのHTTPコールでリクエストボディが1つしかないため、リクエストボディにクラスオブジェクトを渡すことはできません。

$ http paramでクラスオブジェクトを渡そうとしているときに、クラスキャスト例外が発生しています。

複数のオブジェクトを単一の$ http呼び出しで渡す方法はありますか?

+0

は私のコードを追加しました質問。 –

答えて

2

でそれを追加することによって、オブジェクトを渡すことができます私は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 } 
} 
0

あなたが作るしようとしている場合は$ http.postをあなたが送信し、その要求にそれを添付しようとしているオブジェクトの配列を作ることができます要求します。

$ http.put( 'ROUTE HERE'、オブジェクトの配列);

0

あなたは、私はいつもfailed.Soそれを何度も試みたが、FORMDATA

角側

var formData=new FormData(); 
formData.append("obj1",new Blob([JSON.stringify(obj1)],{type: "application/json"})); 
formData.append("obj2",new Blob([JSON.stringify(obj2)],{type: "application/json"})); 
http({ 
    method: 'POST', 
    url: '/MyProject/requestUrl', 
    headers: { 'Content-Type': undefined},//to set boundary value by default 
    data: formData, 
    }) 

春側

@RequestMapping(value = { "/requestUrl" }, consumes = { "multipart/form-data" }, method = RequestMethod.POST) 
@ResponseBody 
public String getRequest(@RequestPart("obj1") Object1 object1, 
     @RequestPart("obj2") Object2 Object2,HttpSession session) 
     throws IOException { 

     //implementation 
} 
+0

問題のコードを追加することができます – Hema

+0

実際に私は同じアプローチを試みましたが、stringifyを使用する代わりにObjectのマップを作成し、要求本体として渡しました。私のJavaクラスに私はクラスキャスト例外を取得しています –

関連する問題