如何在(客户端)启动时获取当前位置请求?
How to get current place request on (client) startup?
在我的 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
不包含有关正在访问的当前 URL 的任何信息,这让我的网页一片空白。
我做错了什么?如何在我的应用程序启动时显示请求的位置?
如果我对你的理解是正确的,这会对你有所帮助,你错过了交易的历史部分。
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();
}
我不是专家,但我相信您正试图在 PlaceRequest
存在之前获得它。试着打电话:
placeManager.revealCurrentPlace()
- 这将显示用户尝试访问的页面(如果 url 中的# 后没有任何内容,很可能是您的主页)。
或
placeManager.revealDefaultPlace()
- 这将显示您在 ClientModule
.
中设置为默认位置的任何内容
有关详细信息,请参阅 Revealing Places and Initialize GIN。
祝你好运,玩得开心!
在我的 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
不包含有关正在访问的当前 URL 的任何信息,这让我的网页一片空白。
我做错了什么?如何在我的应用程序启动时显示请求的位置?
如果我对你的理解是正确的,这会对你有所帮助,你错过了交易的历史部分。
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();
}
我不是专家,但我相信您正试图在 PlaceRequest
存在之前获得它。试着打电话:
placeManager.revealCurrentPlace()
- 这将显示用户尝试访问的页面(如果 url 中的# 后没有任何内容,很可能是您的主页)。
或
placeManager.revealDefaultPlace()
- 这将显示您在 ClientModule
.
有关详细信息,请参阅 Revealing Places and Initialize GIN。
祝你好运,玩得开心!