我使用 RequestFactory 与客户端的服务器和 RequestFactoryEditorDriver 进行通信。所以编辑工作流程看起来像这样。创建新的编辑代理:
RequestContext reqCtx = clientFactory.getRequestFactory().Request();
UserAndAccountProxy userAndAccountProxy = reqCtx.create(UserAndAccountProxy.class);
reqCtx.saveAndReturnProfileAndAccount(userAndAccountProxy).to(
new Receiver<UserAndAccountProxy>() {
@Override
public void onSuccess(UserAndAccountProxy response) {
...
}
@Override
public void onFailure(ServerFailure error) {
...
}}
和保存按钮点击处理:
RequestContext reqCtx = view.getEditorDriver().flush();
reqCtx.fire();
在服务器端 saveAndReturnProfileAndAccount 方法可以在持久化时抛出异常,我可以在 onFailure 方法中处理。之后,如果我使用新的请求上下文创建新代理并将其传递给我的编辑器,所有字段都将被空白。那么执行请求的正确方法是什么,如果出现问题,使用用户已经填写的数据,或者我在编辑工作流中犯了错误?