GWTP:重定向到另一个给定条件的页面

时间:2011-10-12 03:00:41

标签: gwt gwt-platform

有这个应用程序,如果你第一次打开它来检查数据库中的值,如果值是好的那么

如果值不存在,我想重定向到另一个用户可以输入的页面。

我该怎么做?

PS:我可以使用URL中的@NameTolen值访问其他页面。只是不知道如何进行自动“切换”以及Presenter层的哪个部分来编码(如果它甚至去那里)。

2 个答案:

答案 0 :(得分:2)

在演示者中,您可以使用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 :(得分:1)

你甚至可以在透露主持人之前做到这一点。 在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