0

jqueryでajaxを使ってjspページからアクションクラスにjsonデータを転送したいです。以下はjqueryコードです。

$.ajax({
type : 'POST',
url : contextPath+"/postData.action",   
async: false ,
data :json,
dataType:"json", 
contentType: 'application/json; charset=utf-8',
contentType: "application/json",
success : function(result) {
    }
});

アクション クラス コードは次のとおりです。

private String data;

public String getData() {
    return data;
}

public void setData(String data) {
    this.data = data;
}

@Override
public String execute() 
{
    System.out.println(data);
    return ActionSupport.SUCCESS;
}

Struts.xml 構成ファイル

<action name="postData" class="demo.StoreJSONData" >     
    <result name="success">/jsp/output.jsp</result>

 </action>

サンプル json コードのコード:

{
"rectangle": {
    "0": {
        "id": "rectangle_1",
        "displayData": "<div class=\"\" style=\"background: none repeat scroll 0% 0% rgb(255, 255, 255); width: 389px; height: 129px; position: absolute; left: 92px; top: 360px; border: 1px solid black; z-index: 4;\" id=\"rectangle_1\"></div>"
    }
},
"eclipse": {
    "0": {
        "id": "eclipse_1",
        "displayData": "<div class=\"\" style=\"position: absolute; z-index: 5; background-color: rgb(243, 239, 15); border: 1px solid black; width: 245px; height: 83px; border-radius: 50% 50% 50% 50%; left: 563px; top: 445px;\" id=\"eclipse_1\"></div>"
    }
}
}
4

3 に答える 3

0

ちょっと問題は、オブジェクトの配列を直接投稿していることです。そのため、Struts2 はどのメソッドを呼び出すべきかわかりません。以下のようにjsonデータを変更します。それはうまくいくでしょう。

{"data":[{"id":"1","code":"111","name":"ddd"},
"id":"2","code":"222","name":"sss"},
{"id":"3","code":"333","name":"eee"}]}

次に、セッター内でオブジェクトを読み取ります

public void setData(List < Report > data) {
System.out.println("Setter Call Flow");
this.data = data;

}

Report は Java クラスであり、setter と getter を持つメンバーであるため、id、code、name が含まれています。

于 2014-05-11T15:35:43.257 に答える
0

より高レベルのプラグイン (struts-jquery-plugin) を使用することをお勧めします。それはあなたが探しているものである Ajax 呼び出しをサポートしています。

于 2013-10-04T07:21:34.620 に答える