5

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

例如,假设我想创建一个到 Place1 的链接。对于内部消费,我可以做到presenter.goTo(new Place1("token"))。我怎样才能把它变成Anchor用户可以粘贴到浏览器中的链接或某种链接?

4

5 回答 5

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();
  }
});
于 2011-03-12T11:08:24.897 回答
2

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

于 2011-03-13T16:45:49.310 回答
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()));
于 2012-04-12T21:59:19.910 回答
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")));
    // ...
}
于 2013-02-20T20:48:58.797 回答
0

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

Anchor anchor = new Anchor("go to place1 ", "token");
于 2011-03-08T08:30:56.563 回答