7

JSON オブジェクトを JavaScript から 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;
    }



}

私の問題は、アクション クラスで JSON オブジェクトを受け取る方法です。

注: JSON オブジェクトの POST は成功しました.. Action クラスを介してそれを受け取る方法がわかりません.. 助けてください ありがとう

4

1 に答える 1

5
  1. struts.xml入力内容に誤りがあります
  2. でタイルの結果とインターセプターを定義しましたかstruts.xmlこのリンクをご覧ください
  3. dataサーバーに送信する json にはキーが含まれていません。したがって、常に null になります。json はオブジェクトとして示されるためです。この方法で JSON を Java オブジェクトに変換する必要があります。

アプローチ 1.

などのセッターを作成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 オブジェクト全体がマップとして提供されます。

于 2012-10-05T12:56:23.800 に答える