我想将我的JSON对象从Javscript发送到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
$.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配置
<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类中接收JSON对象。
注意:POST OF JSON对象成功。.我只是不知道如何通过Action Class接收它。.请帮助谢谢
struts.xml
data
方法1。
为lists,maps,number1,numberarray1,string1等等创建setter 。在 此链接 的顶部,定义了执行方法。然后,您可以通过这种方式访问所有变量。
lists,maps,number1,numberarray1,string1
方法2。 在您的JavaScript中定义一个新对象。
var sentData ={}; sentData ["sentData "] = data; // And in your ajax call , data: JSON.stringify(sentData),
在您的动作课中,为此创建吸气器和吸气器。
Map<K.V> sentData = new HashMap<K,V>();
这将为您提供整个json对象作为Map。