0

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

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

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

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

  • 构造函数
  • 揭示父母
  • 绑定
  • 重置

我应该将获取和更新模型的 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我应该在哪里放置事件处理程序来访问它们?

4

2 回答 2

2

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

我个人使用反向 MVP 模式处理事件。但是您也可以通过这种方式调用处理程序:

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

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

HasClickHandlers getSubmitButton()
于 2012-02-26T07:39:09.777 回答
0

悉尼涵盖了您的大部分问题。

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

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

于 2012-02-26T18:35:28.893 回答