我有一个问题,我一个人无法解决。因此,非常感谢您的帮助。我们开始吧:总是如果我在我的网格中编辑多于一行,我会在我的控制器中获得一个 bean 列表以供进一步处理......例如保存更改,但如果我只编辑 1 行我会得到一个空列表或该列表为空。只有当我编辑超过 1 行时它才有效。
这是我的商店和代理:
var billRecordStore = null;
function createbillRecordStore() {
var billRecordProxy = new Ext.data.HttpProxy({
api : {
read : applicationPath + '/filterRecords',
update : applicationPath + '/updateRecords'
},
type : 'json',
reader : {
type : 'json',
root : 'data',
idProperty : 'brid',
totalProperty : 'total'
},
writer : {
type : 'json'
},
actionMethods: {
create: 'POST', read: 'POST', update: 'POST', destroy: 'POST'
},
simpleSortMode: true
});
billRecordStore = Ext.create('Ext.data.Store', {
pageSize : 25,
model : 'billRecordModel',
storeId : 'billRecordStore',
proxy : billRecordProxy,
remoteSort : false,
autoLoad : false
});
}
那是我的 SpringMVC 控制器:
@ResponseBody
@RequestMapping(value = "/updateRecords", method =
{RequestMethod.POST, RequestMethod.GET}, produces =
"application/json")
public ResponseWrapper updateBillrecord(
@RequestBody List<BillRecordsDTO> dirtyBillRecords
) {
if (dirtyBillRecords != null && dirtyBillRecords.size() > 0)
{
billRecordService.updateBillRecords(dirtyBillRecords);
}
return null;
}
如果我只编辑网格中的 1 行,则此列表List<BillRecordsDTO> dirtyBillRecords
始终可用。null
超过 1 个已编辑的行运行良好。我在服务器端没有抛出异常。在前端,我在 chrome 浏览器中只得到这个异常:
POST http://localhost:8080/servicetool/updateRecords?_dc=1384181576575 400 (Bad Request) ext-all-debug.js:32379
Ext.define.request ext-all-debug.js:32379
Ext.define.doRequest ext-all-debug.js:71730
Ext.define.update ext-all-debug.js:71455
Ext.define.runOperation ext-all-debug.js:74757
Ext.define.start ext-all-debug.js:74704
Ext.define.batch ext-all-debug.js:42884
Ext.define.sync ext-all-debug.js:43606
Ext.define.save ext-all-debug.js:43634
saveChanges billRecordController.js:113
Ext.create.items.tbar.handler serviceToolView.js:206
Ext.define.fireHandler ext-all-debug.js:46226
Ext.define.onClick ext-all-debug.js:46216
(anonymous function)
wrap
有任何想法吗?您需要更多信息吗?就告诉我嘛。非常感谢您提前。埃德弗雷德