我认为,它与服务器通信以上传和下载文件。
我已经为服务器的未授权响应添加了EventHandler到我的视图。
现在我想将用户重定向到登录页面:
PlaceManager pm;
PlaceRequest placeRequest = new PlaceRequest.Builder(pm.getCurrentPlaceRequest()).nameToken(Routing.Url.login).build();
pm.revealPlace(placeRequest);
MaterialToast.fireToast("You session has expired.");
但为此,我需要PlaceManager
个对象。我怎样才能将它注入我的视野?
我使用GWT 2.7和GWTP
答案 0 :(得分:1)
首先,你不应该在视图中拥有任何这样的逻辑。相反,你应该创建
public interface YourViewUiHandlers extends UiHandlers{
void navigate();
}
然后更改MyView界面以实现HasUiHandlers<YourViewUiHandlers>
,并在ViewImpl中将extends ViewImpl
替换为e xtends ViewWithUiHandlers<YourViewUiHandlers >
现在,在您看来,您可以这样打电话给您的演示者:
getUiHandlers().navigate();
当然你的主持人应该
view.setUiHandlers(this);
可以使用@Inject
注释将PlaceManager注入到Presenter中。
实际上,如果你想让它变得糟糕而且很脏@Inject
也会为视图做这件事。如果它不是View而只是一些复合 - 使用@UiField(提供= true)用GIN初始化它,然后只需将它注入构造函数/在initWidget();
之前设置字段