0

私はajaxとJSON(および一般的なプログラミング)は初めてですが、ajaxを使用してJSONオブジェクトをJavaオブジェクトに変換しようとしていますが、「必要なLocationsListパラメーター 'myJSONObject'が存在しません」というメッセージが表示され続けます. ここで ajax に期待しすぎていませんか? LocationsList のフィールドは自動的に入力されると言われました。

アヤックスのもの:

function getAffectedFlowsForLocation(myJSONObject) {
//JSON.stringify(myJSONObject) looks like {"stations":["111", "222"],"stationGroups":["333"],"others":[]}

    $.ajax({
    url : baseUrl + "/locations/getFlowsAffectedByDelete",
    type : "GET",
    data : "{'myJSONObject':'" + JSON.stringify(myJSONObject)+ "'}",
    dataType : "json",
    contentType: 'application/json',
    async : false,
    success:function(data){
        displayAffectedFlows(data);
    },
    error : function(){
        // error is handled by global ajaxError()
        success = false;
    }
});

}

コントローラーで:

@RequestMapping(value = "/getFlowsAffectedByDelete", method = RequestMethod.GET)
@ResponseBody
public List<Map<String, String>> getFlowsAffectedByDelete(@RequestParam(value = "myJSONObject") final LocationsList locations) {
    //returns a List<Map<String, String>>
}

私の場所リスト:

public class LocationsList {

private List<Integer> stations;

private List<Integer> stationGroups;

private List<Integer> others;

//Getters and setters
}

説明が必要な場合はお知らせください。

ありがとう

4

2 に答える 2

1

使用する

   @RequestBody LocationsList locations

それ以外の

   @RequestParam
于 2013-09-26T12:07:54.743 に答える
0

data属性の使用方法を変更する必要があると思います。jQueryのドキュメントから:

サーバーに送信されるデータ。まだ文字列でない場合は、クエリ文字列に変換されます。GET リクエストの URL に追加されます。

したがって、それはオブジェクトである必要があります。

data : { myJSONObject : JSON.stringify(myJSONObject) },

または文字列:

data : "myJSONObject=" + JSON.stringify(myJSONObject),
于 2013-09-26T15:01:55.703 に答える