0

私はJavaのプレイフレームワークを使用しています。そして、データを投稿するためのjquery ajaxがあります(Stringの表現JsonNode)。この ajax 呼び出しを処理するために、コントローラー クラスにアクション メソッドを作成しています。

私が直面している問題は、jquery ajax で送信しているデータに 10 個のテキストフィールド値があることです。そして、10 個の変数が定義された 3 つの Bean クラス (つまり、MyClass1 ,MyClass2 ,MyClass3 ) that together have all these 10 variables to capture those textfield values. If I had only a single bean(say,MyClass1`) があり、次のように記述できます。

JsonNode json = request().body().asJson();
MyClass1 obj1 = Json.fromJson(json, MyClass1.class);

から値に簡単にアクセスできますobj1

しかし、私には 3 つの Bean があり、最初の Bean には 3 つの変数、2 番目の 5 つの変数、3 番目の 2 つの変数があります。これは問題を引き起こします。

これらの 10 個のテキスト フィールドの値をMyClass1 obj1、適切な方法で、必要に応じて取得するにはどうすればよいですか。言い換えれば、どのように分割を達成するのですか?または、3 つのすべての Bean で適切な値を取得するのに似たもの。MyClass2 obj2MyClass3 obj3JsonNode

どんな助けや手がかりも本当に感謝しています。前もって感謝します。これらを得るために何ができるでしょうか?

4

1 に答える 1

0

さて、この質問に対する答えは非常に簡単です。私がしたことは、Bean に次の 2 行を追加したことですMyClass1

public MyClass2 m2;
public MyClass3 m3;

そして、コントローラーのjsonメソッドのコードを以前と同じに保ちました。つまり、次のようになります。

JsonNode json = request().body().asJson();
MyClass1 obj1 = Json.fromJson(json, MyClass1.class);

そしてjqueryで複雑なjsonを作成しましたvar(注:以下をご覧くださいdata1):

var data1 = {
    "dataField1": dataField1,
    "dataField2": dataField2,
    "dataField3": dataField3,
    "data2": data2,
    "data3": data3
}

var data2 = {
    "dataField4": dataField4,
    "dataField5": dataField5,
    "dataField6": dataField6,
    "dataField7": dataField7,
    "dataField8": dataField8
}

var data3 = {
    "dataField9": dataField9,
    "dataField10": dataField10
}

そして、ajax呼び出しを行う間、次のように単純に渡しdata1ました:

$.ajax({
    url: '/myUrl/data1',
    type: 'POST',
    data: JSON.stringify(data1),
    contentType: "application/json",
    ..
    ..
    ..
});

これで、コントローラーの json メソッドで、問題にアクセスobj1.m2obj1.m3て解決することができました。(分割を考える必要はありませんJsonNode。)

于 2013-07-30T12:45:57.820 に答える