我正在使用Java的Play框架。我有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个变量中,在第3个变量中。这会产生问题。
如何以MyClass1 obj1
,MyClass2 obj2
,MyClass3 obj3
以适当方式并根据需要获取这10个文本字段值。换句话说,我如何实现JsonNode
的分割。或类似的东西在所有3个bean中获得适当的值。
任何帮助或任何线索都非常感谢。提前致谢。 可以做些什么来获得这些?
答案 0 :(得分:0)
嗯,这个问题的答案非常简单。我做的是
我在bean 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
。)