On ItemController:
@RequestMapping(value="/delete.htm", produces="application/json", method=RequestMethod.POST)
public @ResponseBody Item deleteItem(
@RequestParam String itemName) {
Item existingItem = new Item();
existingItem.setItemName(itemName);
itemService.deleteItem(existingItem);
return existingItem;
}
On ItemDao Impl:
@Override
public void deleteItem(Item item) {
// TODO Auto-generated method stub
sessionFactory.getCurrentSession().delete(item);
}
项目ServiceImpl上的:
@Transactional
public void deleteItem(Item item) {
// TODO Auto-generated method stub
itemDao.deleteItem(item);
}
在Jquery Grid上我使用删除功能:
function deleteRow(obj, args) {
// Get the currently selected row
var row = $('#grid').jqGrid('getGridParam','selrow');
// A pop-up dialog will appear to confirm the selected action
if (row != null) {
$('#grid').jqGrid('delGridRow', row, {
url: 'delete.htm',
recreateForm: true,
beforeShowForm: function (form) {
//Change title
$(".delmsg").replaceWith('<span style="white-space: pre;">' +
'Delete selected record?' + '</span>');
//hide arrows
$('#pData').hide();
$('#nData').hide();
},
reloadAfterSubmit: true,
closeAfterDelete: true,
serializeDelData: function (postdata) {
var rowdata = $('#grid').getRowData(postdata.id);
// append postdata with any information
return {
id: postdata.id,
oper: postdata.oper,
username: rowdata.username
};
},
afterSubmit: function (response, postdata) {
var result = eval('(' + response.responseText + ')');
var errors = "";
if (result.success == false) {
for (var i = 0; i < result.message.length; i++) {
errors += result.message[i] + "<br/>";
}
} else {
$('#msgbox').text('Entry has been deleted successfully');
$('#msgbox').dialog({
title: 'Success',
modal: true,
buttons: {
"Ok": function () {
$(this).dialog("close");
}
}
});
}
// only used for adding new records
var newId = null;
return [result.success, errors, newId];
}
});
} else {
$('#msgbox').text('You must select a record first!');
$('#msgbox').dialog({
title: 'Error',
modal: true,
buttons: {
"Ok": function () {
$(this).dialog("close");
}
}
});
}
}
我收到以下错误:错误状态:'错误请求'。错误代码:400 删除所选记录? 我在控制器或jq网格中出错?请建议
答案 0 :(得分:0)
That means你没有正确地将你的控制器映射到ajax jquery调用(?)。
我不熟悉jqGrid,但检查您是否正在执行帖子,并且请求参数已正确定义。
(你使用的逻辑和命名惯例是令人困惑的btw。)
答案 1 :(得分:-1)
HTTP-Response Code 400声明您的请求有问题。只需检查对您的Web服务的调用是否正确(路径,参数等)。
此外,您可以查看服务器日志文件,以获得客户端错误的解释。 Spring-mvc将响应代码400映射到许多异常(看看here)。通过分析异常,您可以了解您的请求有什么问题。