new*_*bie 6 java jquery json struts2
我想将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"]
}
Run Code Online (Sandbox Code Playgroud)
我的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');}
});
Run Code Online (Sandbox Code Playgroud)
Struts.xml配置
<action name="JSON" class="com.actions.json.JsonAction" method="getJSON">
<result type="json"/>
</action>
Run Code Online (Sandbox Code Playgroud)
我的动作类
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在Action Class中接收JSON对象.
注意:POST OF JSON对象成功..我只是不知道如何通过Action Class接收它..请帮助谢谢
struts.xml参赛作品中有拼写错误struts.xml.请看这个链接 data密钥.所以它总是空的.因为json被表示为对象.您需要以这种方式将JSON转换为Java对象.方法1.
创建setter lists,maps,number1,numberarray1,string1等等.在此链接的顶部,定义了执行此操作的方式.然后,您可以通过这种方式访问所有变量.
方法2. 在你的javascript中定义一个新对象.
var sentData ={};
sentData ["sentData "] = data;
// And in your ajax call ,
data: JSON.stringify(sentData),
Run Code Online (Sandbox Code Playgroud)
在你的动作类中,为此创建getter和setter.
Map<K.V> sentData = new HashMap<K,V>();
Run Code Online (Sandbox Code Playgroud)
这将为您提供整个json对象作为Map.
| 归档时间: |
|
| 查看次数: |
11534 次 |
| 最近记录: |