使用GWT平台处理模型保存和更新



我正在尝试将我的GWT web应用程序从我自己开发的MVC调整为GWT平台。

我已经设法将我的应用程序视图移植到演示者,并且基本上能够通过PlaceRequest访问视图。以及更改URL(#)。

然而,我不知道如何使用这个GWT平台处理模型,在常见的MVP中,我知道演示程序中有一个go()方法,它可以通过RPC从服务器获取数据。

在GWT平台演示程序中,以下是Eclipse插件自动生成的方法:

  • 施工单位
  • 收入InParent
  • onBind
  • on重置

我应该把将获取和更新我的模型的RPC代码放在哪里。在演示者中说:

ProfilePresenter.java:

public class ProfilePresenter
        extends
        Presenter<ProfilePresenter.MyView, ProfilePresenter.MyProxy> {
    public interface MyView extends View {
        HasText getFullname();
        HasText getLocation();
        HasText getAboutme();
        HasText getLastlogin();
    }
    private User user; // Model which represents the User information etc.

当显示与Presenter关联的视图时,我需要从服务器获取用户模型并更新模型,然后通过它公开的接口更新视图。

另外,假设我在视图中有一些按钮,演示者可以通过HasClickHandler访问这些按钮,我应该把事件处理程序放在哪里?

我会把RPC调用放在onReset方法中。查看演示者生命周期

就我个人而言,我用MVP模式来处理事件。但您也可以这样调用处理程序:

    getView().getSubmitButton().addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
        }
    });

在您的视图界面中具有getSubmitButton的以下签名:

HasClickHandlers getSubmitButton()

Sydney回答了您的大部分问题。

一般来说,onReset方法是进行后端调用的好地方
有时,当后端调用需要更长的时间,并且您希望仅在加载数据后显示视图时,可以使用手动显示
但对于个人资料页面,我认为这没有必要。

我也同意MVP的反向模式。使用反向MVP模式测试演示者要比使用HasXXXHandlers接口容易得多。

最新更新