我有一个 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 元素并将值放入对象中!click 函数执行 POST 并且 Post 包含以下数据。
bill [{"tableName":"326432"},{"room":"3462346"},{"covers":"3426234"}]
现在,当我调试和检查服务时,来自前端的数据没有映射到参数中。我检查了变量名称是否与 POST 相同。他们是一样的!但是这些值没有被映射!任何人都可以帮我解决这个问题。
更新 :
我将服务方法更改为 GET 并将值作为 URL 变量传递。然后它被映射到服务参数中。问题出在 POST 中。