0

我正在使用 Java 的播放框架。我有 jquery ajax 来发布我的数据(String表示JsonNode)。我正在我的控制器类中编写一个操作方法来服务这个 ajax 调用。

我面临的问题是,我使用 jquery ajax 发送的数据有 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`),其中定义了 10 个变量,我可以写如下内容:

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

并轻松访问obj1.

但是我有 3 个 bean,在第一个 bean 中有 3 个变量,在第二个 5 个变量中,在第三个 2 个变量中。这就产生了一个问题。

我如何以正确的方式并根据需要在MyClass1 obj1MyClass2 obj2、中获取这 10 个文本字段值。MyClass3 obj3换句话说,我如何实现JsonNode. 或类似的东西在所有 3 个 bean 中获得适当的值。

非常感谢任何帮助或任何线索。提前致谢。可以做些什么来获得这些?

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.m2并且obj1.m3可以解决我的问题。(无需考虑拆分JsonNode。)

于 2013-07-30T12:45:57.820 回答