私の要件は、角度$ httpサービスで複数のクラスオブジェクト(リクエストパラメータを持つリクエストボディまたは残りのコントローラのリクエストボディ)を渡すことです。
1つのHTTPコールでリクエストボディが1つしかないため、リクエストボディにクラスオブジェクトを渡すことはできません。
$ http paramでクラスオブジェクトを渡そうとしているときに、クラスキャスト例外が発生しています。
複数のオブジェクトを単一の$ http呼び出しで渡す方法はありますか?
私の要件は、角度$ httpサービスで複数のクラスオブジェクト(リクエストパラメータを持つリクエストボディまたは残りのコントローラのリクエストボディ)を渡すことです。
1つのHTTPコールでリクエストボディが1つしかないため、リクエストボディにクラスオブジェクトを渡すことはできません。
$ http paramでクラスオブジェクトを渡そうとしているときに、クラスキャスト例外が発生しています。
複数のオブジェクトを単一の$ http呼び出しで渡す方法はありますか?
でそれを追加することによって、オブジェクトを渡すことができます私は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 }
}
あなたが作るしようとしている場合は$ http.postをあなたが送信し、その要求にそれを添付しようとしているオブジェクトの配列を作ることができます要求します。
$ http.put( 'ROUTE HERE'、オブジェクトの配列);
あなたは、私はいつも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
}
問題のコードを追加することができます – Hema
実際に私は同じアプローチを試みましたが、stringifyを使用する代わりにObjectのマップを作成し、要求本体として渡しました。私のJavaクラスに私はクラスキャスト例外を取得しています –
は私のコードを追加しました質問。 –