我想做的是将几个请求全部收集在一起,然后将它们解雇一次
我的代码:
RequestContext contextA =requestFactory
.dataRequest().save(...).to(...);
RequestContext contextB =requestFactory
.itemRequest().save(...).to(...);
requestA.append(requestB);
requestA.fire();
dataRequest和item request都扩展了RequestContext
当我试图这样做时,我得到了:
造成原因:java.lang.IllegalStateException:
提供的RequestContext已在com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.append(AbstractRequestContext.java:484)上更改。
所以我在做什么错?
最佳答案
append()
的参数必须为干净的RequestContext
。
您可以将代码更改为:
ItemRequest contextB = requestFactory.itemRequest();
contextA.append(contextB);
contextB.save(...).to(...);
或更简单地说:
requestA.append(requestFactory.itemRequest()).save(...).to(...);
理由:在内部,附加的
RequestContext
使用共享状态;调用append()
时,附加的RequestContext
的内部状态将替换为要附加的状态。如果不为空,则将丢失数据(没有合并),因此它只会失败。关于gwt - 如何正确添加RequestContexts,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12004548/