GWTP: перенаправление на другую страницу с заданным условием - PullRequest
1 голос
/ 12 октября 2011

Получил это приложение, если вы откроете его в первый раз, когда оно проверит значение в БД, если значение там, все хорошо

Если значение НЕ там, я бы хотел перенаправитьна другую страницу, где пользователь может ввести это.

Как я могу это сделать?

PS: я могу получить доступ к другой странице, используя значение @NameTolen в URL.Просто не знаю, как сделать автоматическое «переключение» и в какой части слоя Presenter его кодировать (если он вообще туда идет).

Ответы [ 2 ]

2 голосов
/ 12 октября 2011

В вашем докладчике вы можете проверить значение в onReveal() или onReset() методах. Смотрите жизненный цикл докладчика: http://code.google.com/p/gwt-platform/wiki/GettingStarted#Presenter_lifecycle

Вам также нужно добавить PlaceManager в презентатор, используя конструктор. И тогда вы можете перенаправить так:

public void onReveal() {
  if(checkValue()) {
    PlaceRequest myRequest = new PlaceRequest(NameTokens.yourPage);
    placeManager.revealPlace(myRequest);
  }
}

См. «Выявление докладчика»: http://code.google.com/p/gwt-platform/wiki/GettingStarted#Revealing_a_presenter

1 голос
/ 06 февраля 2012

Вы можете сделать это еще до того, как откроете докладчика. В prepareFromRequest вы можете вызвать диспетчер и в обратном вызове решить, куда «перенаправить».

  @Override
  public void prepareFromRequest(PlaceRequest request) {
    super.prepareFromRequest(request);
    dispatcher.execute( new GetData(), 
        new AsyncCallback<GetDataResult>(){
          @Override
          public void onSuccess(GetDataResult result) {
            // depending on result reveal another place
            placeManager.revealPlace( ... )
          }
          @Override
          public void onFailure(Throwable caught) {
            // Display an error message
          }
        } ) );
  }

Также см. Здесь для большего количества идей: http://code.google.com/p/gwt-platform/wiki/GettingStarted#Using_manual_reveal

...