0

Spring MVC Web アプリケーションがあり、次の Web サービスがあります。

@RequestMapping(value = "/newBill", method = RequestMethod.POST)
public @ResponseBody ModelMap acceptNewBill(@ModelAttribute ("Bill") Bill newBill ){
    Bill bill = new Bill();

    bill.setTableName(newBill.getTableName());
    bill.setRoom(newBill.getRoom());
    bill.setCovers(newBill.getCovers());

    ModelMap model = new ModelMap();
    model.put("status", true);
    return model;
}

次のスクリプトは、フロントエンド機能を実行します。

$('.done').click(function(){
var jsonObject = createJSON(".newBill");

jQuery.ajax({
    url: "/newBill",
    type: "POST",
    data: {bill: JSON.stringify(jsonObject) },
    dataType: "json",
    beforeSend: function(x) {
    if (x && x.overrideMimeType) {
        x.overrideMimeType("application/j-son;charset=UTF-8");
        }
    },
    success: function(result) {
        alert('sadgsd');
        }
    });
});

function createJSON(elementToConvert) {
    jsonObj = [];
    $( elementToConvert + " input").each(function() {

    var id = $(this).attr("class");
    var email = $(this).val();

    item = {}
    item [id] = email;

    jsonObj.push(item);
    });

    return jsonObj;
}

上記の createJSON 関数は、提供された html 要素を通過し、値をオブジェクトに入れます! クリック機能は POST を実行し、Post には次のデータが含まれます。

bill    [{"tableName":"326432"},{"room":"3462346"},{"covers":"3426234"}]

サービスをデバッグしてチェックすると、フロントエンドからのデータがパラメーターにマップされません。変数名が POST と同じかどうかを確認しました。彼らは同じです!しかし、値はマップされません! 誰でもこの問題で私を助けてくれませんか。

アップデート :

サービス メソッドを GET に変更し、値を URL 変数として渡しました。次に、サービス パラメータにマッピングされました。問題は POST にあります。

4

1 に答える 1