В моем проекте GWT я использую Activity/Place
, если текущий пользователь не вошел в систему, когда он перейдет к некоторому Place
, пользователь будет перенаправлен на страницу входа в систему, если пользователь выполнил вход в систему, то он будет доставлен в этот Place
. Как эффективно реализовать эту логику?GWT: способ отмены PlaceChangeEvent?
Я попытался зацепить PlaceChangeRequestEvent:
eventBus.addHandler(PlaceChangeRequestEvent.TYPE,new PlaceChangeRequestEvent.Handler() {
@Override
public void onPlaceChangeRequest(PlaceChangeRequestEvent event) {
Place newPlace = event.getNewPlace();
if (newPlace instanceof MyProtectedPlace && userNotLoggedIn()) {
event.goTo(new LoginPlace());
}
}
});
К сожалению, это не работает, так как продолжающаяся запрос MyProtectedPlace
не отменяется. Да, я могу проверить это, когда пользователь собирается перейти от текущего места, но это не будет эффективно, поскольку логика проверки будет разбросана по всей программе.
Спасибо.