Gwt 如何使用请求工厂保存/编辑对象和刷新数据网格

Gwt 如何使用请求工厂保存/编辑对象和刷新数据网格,gwt,requestfactory,Gwt,Requestfactory,我从请求工厂的dynatableref示例开始。我看了申请工厂的文件。但我仍然不清楚客户机到服务器的生命周期或流程。 我想给服务器打个电话。插入数据并更新网格。使用RPC调用很容易。但我不明白如何处理请求工厂。 这是请求工厂的一种方法。它自动调用服务器的persist方法。它还会自动刷新网格。我能告诉谁它是如何工作的吗 context.fire(new Receiver<Void>() { @Override public void onConstrai

我从请求工厂的dynatableref示例开始。我看了申请工厂的文件。但我仍然不清楚客户机到服务器的生命周期或流程。 我想给服务器打个电话。插入数据并更新网格。使用RPC调用很容易。但我不明白如何处理请求工厂。 这是请求工厂的一种方法。它自动调用服务器的persist方法。它还会自动刷新网格。我能告诉谁它是如何工作的吗

   context.fire(new Receiver<Void>() {
      @Override
      public void onConstraintViolation(Set<ConstraintViolation<?>> errors) {
        // Otherwise, show ConstraintViolations in the UI
        dialog.setText("Errors detected on the server");
        editorDriver.setConstraintViolations(errors);
      }

      @Override
      public void onSuccess(Void response) {
        // If everything went as planned, just dismiss the dialog box
        dialog.hide();
      }
    });
context.fire(新接收器(){
@凌驾

public void onConstraintViolation(设置RUEQUESTFORY
的流客户端服务器类似于
RPC
或任何
XMLHTTP
请求

1) 您可以在服务器上调用远程方法

2) 您在
Receiver
对象(即
回调
对象)中收到响应。在
onsecess
方法中,如果一切顺利,您将得到返回的对象。
onFailure
如果出现问题,您将得到错误

因此,要从服务器检索的数据填充Person表,代码应该如下所示

 requestFactory.schoolCalendarRequest().getPersonList(param1).fire(new Receiver<List<PersonProxy>>() {
    @Override
    public void onSuccess(List<PersonProxy> personList) {
       personTable.getDataProvider().setList(personList);
    }
  });
<> >与<代码> RequestFactory <代码>应放置在<代码>演示者< /代码>中,因此您可能应该考虑实现<代码> MVP模式。

 requestFactory.schoolCalendarRequest().getPersonList(param1).fire(new Receiver<List<PersonProxy>>() {
    @Override
    public void onSuccess(List<PersonProxy> personList) {
       personTable.getDataProvider().setList(personList);
    }
  });
column.setFieldUpdater(new FieldUpdater<Person, String>() {
  @Override
  public void update(PersonProxy personProxy, String value) {
    RequestContext requestContext =  requestFactory.schoolCalendarRequest()
    PersonProxy personProxy= requestContext.edit(personProxy);
    personProxy.setName(value);
        requestFactory.schoolCalendarRequest().savePerson(personProxy).fire(new Receiver<PersonProxy>() {
        @Override
        public void onSuccess(PersonProxy person) {
            //Do something after the update
         }
        });
      }
  });