有这个应用程序,如果你第一次打开它,它会检查数据库中的值,如果值在那里,一切都很好
如果该值不存在,我想重定向到用户可以输入的另一个页面。
我怎样才能做到这一点?
PS:我可以使用 URL 中的 @NameTolen 值访问其他页面。只是不知道如何进行自动“切换”以及在 Presenter 层的哪个部分对其进行编码(如果它甚至在那里)。
有这个应用程序,如果你第一次打开它,它会检查数据库中的值,如果值在那里,一切都很好
如果该值不存在,我想重定向到用户可以输入的另一个页面。
我怎样才能做到这一点?
PS:我可以使用 URL 中的 @NameTolen 值访问其他页面。只是不知道如何进行自动“切换”以及在 Presenter 层的哪个部分对其进行编码(如果它甚至在那里)。
在您的演示者中,您可以检查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
你甚至可以在展示主持人之前做到这一点。在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