JSON Jquery到Struts2的动作 [英] JSON Jquery to Struts2 action

查看:88
本文介绍了JSON Jquery到Struts2的动作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将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

推荐答案


  1. 你的错字 struts.xml 条目

  2. 您是否在 struts.xml中定义了tile结果和拦截器 请参阅此链接

  3. 你是json发送到服务器,不包含任何数据键。所以它总是空的。
    因为json被表示为对象。您需要以这种方式将JSON转换为Java对象。

  1. There is a typo in your struts.xml entry
  2. Have you defined tiles result and interceptor in struts.xml . Please see this link
  3. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆