GWT:如何从Activity start方法中转到新位置?

时间:2011-11-03 23:30:30

标签: java gwt

所以我做的是这样的:

public class SecureActivity extends AbstractActivity {
  public void start(AcceptsOneWidget container, EventBus eventBus) {    
    if (!_app.isUserLoggedIn()) {
      _app.goTo(new LoginPlace(_app.getCurrentPlaceToken()))
    } else {
      // do cool secure stuff
    }
  }
}

但我看到的行为是我的浏览器的历史记录是原始网址(来自原始请求),然后是登录:redirectPlace,然后是原始网址。

看起来我需要在start()方法完成后进行重定向。有没有一种正确的方法来延迟/委托goTo在start方法之外发生?

感谢。

1 个答案:

答案 0 :(得分:4)

这应该足够了:

Scheduler.get().scheduleFinally(new ScheduledCommand() {
   @Override
   public void execute() {
      _app.goTo(new LoginPlace(_app.getCurrentPlaceToken());
   }
}