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 にあります。