在我的ApplicationBootstrapper implements Bootstrapper
我可以访问已注入的PlaceManager
:
public class ApplicationBootstrapper implements Bootstrapper {
private PlaceManager placeManager;
@Inject
public ApplicationBootstrapper(PlaceManager placeManager) {
this.placeManager = placeManager;
}
}
但是,如果我尝试透露这样在场所管理器中设置的位置:
private void revealRequestedPlaceAfterBootstrapping() {
PlaceRequest currentPlaceRequest = this.placeManager.getCurrentPlaceRequest();
this.placeManager.revealPlace(currentPlaceRequest );
}
它不能正常工作。原因似乎是currentPlaceRequest
不包含有关当前访问的网址的任何信息,而这些网址会留下一个空的网页。
我做错了什么?当我的应用程序启动时,如何显示请求的位置?
答案 0 :(得分:0)
我没有专家,但我相信你在一个人存在之前试图获得PlaceRequest
。试着打电话:
placeManager.revealCurrentPlace()
- 这会显示用户尝试访问的网页(如果网址中的#后面没有任何内容,则很可能是您的主页。)
或
placeManager.revealDefaultPlace()
- 这会显示您在ClientModule
中设置的默认位置。
有关详细信息,请参阅Revealing Places和Initialize GIN。
祝你好运,玩得开心!
答案 1 :(得分:-2)
如果我理解正确,这将对您有所帮助,您错过了交易的历史部分。
http://www.gwtproject.org/doc/latest/DevGuideMvpActivitiesAndPlaces.html#Putting_it_all_together
public void onModuleLoad() {
ClientFactory clientFactory = GWT.create(ClientFactory.class);
EventBus eventBus = clientFactory.getEventBus();
PlaceController placeController = clientFactory.getPlaceController();
// Start ActivityManager for the main widget with our ActivityMapper
ActivityMapper activityMapper = new AppActivityMapper(clientFactory);
ActivityManager activityManager = new ActivityManager(activityMapper, eventBus);
activityManager.setDisplay(appWidget);
// Start PlaceHistoryHandler with our PlaceHistoryMapper
AppPlaceHistoryMapper historyMapper= GWT.create(AppPlaceHistoryMapper.class);
PlaceHistoryHandler historyHandler = new PlaceHistoryHandler(historyMapper);
historyHandler.register(placeController, eventBus, defaultPlace);
RootPanel.get().add(appWidget);
// Goes to the place represented on URL else default place
historyHandler.handleCurrentHistory();
}