【发布时间】:2014-02-13 15:11:22
【问题描述】:
我需要你对 gwt requestfactory 的帮助
考虑以下情况:
我从服务器获取了一个现有实体(比如说发票):
InvoiceEntityProxy invoice = request1.getInvoice();
我想进行一些更改,因此我使用新请求对其进行了编辑:
InvoiceEntityProxy editableInvoice = request2.edit(invoice);
//make some changes to editableInvoice
现在我将第二个请求所做的更改发送到服务器,以创建预览:
request2.createPreview(editableInvoice);
发送请求后,发票代理被冻结,我通过将代理分配给新请求来重新启用编辑:
editableInvoice = request3.edit(editableInvoice);
如果一切正常,我想更新代理并将其发送到服务器,使用最新的请求:
request3.update(editableInvoice);
但是更改永远不会到达服务器,因为最新的请求 (request3) 对分配给 request2 的代理所做的更改一无所知。
我想过以下解决方案:
- 我可以在最新的代理上重做更改。但是为此,我必须遍历所有属性并再次设置它们(不是很友好的解决方案,因为我每次向代理添加一些属性时都必须调整方法)
- 另一种方法是将不带 id 的 proyx 发送到服务器,并将 id 作为更新方法的第二个参数发送。但这太可惜了,因为不仅增量会被发送到服务器(这是 requestFactory 的一大特色)。
那么,在将代理分配给另一个请求时,让请求 3 知道已经对代理进行的更改的最佳和最常见做法是什么。
【问题讨论】:
标签: gwt requestfactory requestcontext