【问题标题】:Dealing with model save and update with GWT Platform使用 GWT 平台处理模型保存和更新
【发布时间】:2012-02-26 03:53:59
【问题描述】:

我正在尝试将我的 GWT Web 应用程序从我自己开发的 MVC 调整为 GWT Platform

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

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

在 GWT 平台展示器中,这里是 Eclipse 插件自动生成的方法:

  • 构造函数
  • revealInParent
  • onBind
  • onReset

我应该将用于获取和更新我的模型的 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 访问这些按钮,我应该将事件处理程序放在哪里?

【问题讨论】:

    标签: gwt gwt-platform


    【解决方案1】:

    我会将 RPC 调用放在 onReset 方法中。 See the presenter lifecycle

    我个人使用reversed MVP pattern 处理事件。但是你也可以这样调用处理程序:

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

    在您的视图界面中使用getSubmitButton 的以下签名:

    HasClickHandlers getSubmitButton()
    

    【讨论】:

      【解决方案2】:

      Sydney 涵盖了您的大部分问题。

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

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

      【讨论】:

      • 其实你是对的,我的意思是我现在想使用 GWTP 的主要原因是我的应用程序 RPC 确实需要时间来获取。我的意思是,它的数据来自几个 RPC 调用,使 UI 在某个时间点显示空白字段。这是我自制的 MVC 的主要问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-08
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多