0

複数の JSON オブジェクトをクライアントからサーバー側に渡す方法についてお聞きしたいと思います。まず、サードパーティ API から JSON オブジェクトを取得しました。その後、サーバー側の Java メソッドに渡したいと思います。これは私が試したものですが、成功していません

クライアント側 (JSP)

function getInfo(InkBlob){

        var myInkBlob = JSON.stringify(InkBlob);

        jQuery.ajax({
            type: 'POST',
            url: '/webapp/filepicker/importAssets',
            dataType: 'json',
            data: {"inkBlob": myInkBlob}
        });}

jQuery POST データを次のように

ここに画像の説明を入力

JSON.stringify を使用しない場合、結果は次のようになります。

JSON.stringify を使用しないかどうかを説明するためだけに

これは、受信データに対する応答メソッドです。

@RequestMapping(value = "/importAssets", method = RequestMethod.POST)
@ResponseBody
public void importAssets2(String[] inkBlob) throws Exception {

    System.out.println(inkBlob); // print as [Ljava.lang.String;@56bdbbec (and another 2 similar)
    System.out.println(inkBlob.length); // print as 15}

オブジェクト内のデータを使用したい。たとえば、最初のオブジェクトの URL を取得したい場合。私はただしたいinkBlob[0].URL。また、この例では、3 つのオブジェクトのみがメソッドに渡されるため、inkBlob の予想される長さは 3 になるはずです。どうすればそれを達成できますか???

4

2 に答える 2

0

Spring は、フォームから送信された完全な Bean を渡す方法を提供します

これを使用してみてください: InkBlob は、ポスト リクエストで渡されるものとまったく同じ変数名と型を含む Bean です。

@RequestMapping(value = "/importAssets", メソッド = RequestMethod.POST) @ResponseBody

public void importAssets2(@ModelAttribute(inkBlob) InkBlobinkBlob) throws Exception {

..........その他のコード }

于 2013-09-10T12:57:54.960 に答える
0

クライアントのサンプルコード

<form:hidden path="fileName" value="xxxx"/>
<input type = "hidden" name = "isWritable" value = "yyyyy"/>
<input type = "hidden" name="mimeType" value="zzzzz"/>
............

</form:form>

And on Server Side Handle it like this  :

@RequestMapping(value = "/importAssets", method = RequestMethod.POST) @ResponseBody

public void importAssets2(@ModelAttribute("inkBlob") InkBlobinkBlob) throws Exception {

..........その他のコード }

InkBlob は次のようになります。

public class InkBlob implements Serializable { private static final long serialVersionUID = 15463435L;

String fileName;
String isWritable;
String mimeType;
......


public void setFileName(String fileName){
this.fileName = fileName;
}

.... その他のゲッターとセッター。

}

于 2013-09-13T10:57:29.450 に答える