java - JSON Jquery 到 Struts2 Action

标签 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"]
    }

我的 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>   

我的 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 类接收它。请帮助 谢谢

最佳答案

  1. 您的 struts.xml 条目中有错字
  2. 您是否在struts.xml 中定义了图 block 结果和拦截器。 <强> Please see this link
  3. 您发送到服务器的 json 不包含任何 data 键。因此它将始终为空。 由于 json 被表示为对象。您需要通过这种方式将 JSON 转换为 Java 对象。

方法 1.

lists,maps,number1,numberarray1,string1 等创建 setter。在的顶部this link ,定义了做这件事的方式。然后你可以通过这种方式访问​​所有变量。

方法 2. 在您的 javascript 中定义一个新对象。

 var sentData ={};
 sentData ["sentData "] = data;
// And in your ajax call , 
data: JSON.stringify(sentData),

然后在您的操作类中,为此创建 getter 和 setter。

Map<K.V> sentData = new HashMap<K,V>();

这将为您提供整个 json 对象作为 Map。

关于java - JSON Jquery 到 Struts2 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12746051/

相关文章:

java - HashMap 只给我最后的数据

javascript - 滚动经过一定数量的像素时位置固定

javascript - 如何在页面加载时使用 javascript/jquery 滑动/打开特定菜单项?

python - 如何以 json 格式(双引号) pretty-print (人类可读打印)Python dict?

ios - Q - iOS - 搜索和使用解析的 JSON 数组的特定部分

java - JAX-WS 是否使用服务器端 stub (骨架)进行通信?

java - 将 JSON 字符串转换为 JSON 对象以获取值

java - 内部类中的方法被 proguard 剥离

javascript - jquery ui 添加不必要的代码和破坏东西

javascript - 使用 JS 变量名命名附加变量