JSON Jquery到Struts2的动作 [英] JSON Jquery to Struts2 action
问题描述
我想将JSON对象从Javscript发送到Struts2 Action。
I want to send my JSON object from Javscript to Struts2 Action.
示例JSON对象
{
"lists":["list1","list2","list3","list4","list5"],
"maps": {
"key4":"value4","key3":"value3","key5":"value5","key2":"value2","key1":"value1"
},
"number1":123456789,
"numberarray1":[1,2,3,4,5,6,7,8,9],
"string1":"A",
"stringarray1":["A1","B1"]
}
我的Jquery Ajax
My Jquery Ajax
$.ajax({
type: 'POST',
url: 'json/JSON.action',
data: JSON.stringify(data),
dataType: 'json',
async: false ,
contentType: 'application/json; charset=utf-8',
success: function(){window.alert('Done');}
});
Struts.xml config
Struts.xml config
<action name="JSON" class="com.actions.json.JsonAction" method="getJSON">
<result type="json"/>
</action>
我的行动类
public class JsonAction extends ActionSupport {
private String data;
public String getJSON() {
return ActionSupport.SUCCESS;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
我的问题是如何在Action Class中接收JSON对象。
My Problem is how to receive the JSON Object in Action Class.
注意:POST OF JSON对象成功..我只是不知道如何通过行动类..请帮助
谢谢
NOTE: POST OF JSON object is successful.. I just don't know how to receive it via Action Class.. PLEASE HELP Thank you
推荐答案
- 你的错字
struts.xml
条目 - 您是否在
struts.xml中定义了tile结果和拦截器
。 请参阅此链接 - 你是json发送到服务器,不包含任何
数据
键。所以它总是空的。
因为json被表示为对象。您需要以这种方式将JSON转换为Java对象。
- There is a typo in your
struts.xml
entry - Have you defined tiles result and interceptor in
struts.xml
. Please see this link - The json you are sending to the server, doesn't contain any
data
key. So it will be always null. Since json is denoted as objects. You need to convert JSON into Java objects in this way.
方法1。
为列表,地图,number1,numberarray1,string1
创建setter等等。在 此链接的顶部,定义了这样做的方法。然后你可以用这种方式访问所有变量。
Create setters for lists,maps,number1,numberarray1,string1
and so on. In the top of this link, is defined the way to do it. Then you can access all the variables in this way.
方法2。
在你的javascript中定义一个新对象。
Approach 2. In your javascript define a new object.
var sentData ={};
sentData ["sentData "] = data;
// And in your ajax call ,
data: JSON.stringify(sentData),
在你的动作类中,为此创建getter和setter。
And in your action class, create getters and setters for this.
Map<K.V> sentData = new HashMap<K,V>();
这将为您提供整个json对象作为地图。
This will give you whole json object as a Map.
这篇关于JSON Jquery到Struts2的动作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!