GWT主播到位?

时间:2011-03-08 06:56:38

标签: java gwt gwt2 gwt-mvp

在GWT 2.1+应用程序中,如何生成指向外部消费地点的链接?

例如,假设我要创建一个指向Place1的链接。对于内部消费,我可以做presenter.goTo(new Place1("token"))。如何将其转换为用户可以粘贴到浏览器中的Anchor或某种链接?

5 个答案:

答案 0 :(得分:5)

我将如何做:

final Place1 place = new Place1("token");
Anchor anchor = new Anchor("go to place 1", "#" + placeHistoryMapper.getToken(place));
anchor.addClickHandler(new ClickHandler() {
  public void onClick(ClickEvent event) {
    placeController.goTo(place);
    event.preventDefault();
  }
});

答案 1 :(得分:2)

据我所知,我自己是GWT的新手,如果你使用Hyperlink而不是Anchor,你将不必编写事件处理程序。它会将您重定向到该位置并自动处理历史记录。

答案 2 :(得分:1)

您可以使用PlaceHistoryMapper将地点转换为令牌字符串。有关如何在GWT中实现MVP设计的详细信息,请参阅https://developers.google.com/web-toolkit/doc/latest/DevGuideMvpActivitiesAndPlaces

final YourImplementationOfPlaceHistoryMapper placeHistoryMapper = GWT.create(YourImplementationOfPlaceHistoryMapper.class);

final Hyperlink link = new Hyperlink("A Link To A Place", placeHistoryMapper.getToken(new YourNewPlace()));

答案 3 :(得分:0)

如果您已将令牌映射到某个地方,只需创建一个href属性等于该令牌的锚点。

Anchor anchor = new Anchor("go to place1 ", "token");

答案 4 :(得分:0)

MyView.ui.xml:

<g:InlineHyperlink ui:field="link">Link</g:InlineHyperlink>

MyView.java:

@UiField InlineHyperlink link;

public MyView() {
    // ...
    link.setTargetHistoryToken(getPlaceHistoryMapper().
            getToken(new Place1("token")));
    // ...
}