Java GWT锚定位置?

Java GWT锚定位置?,java,gwt,gwt2,gwt-mvp,Java,Gwt,Gwt2,Gwt Mvp,在GWT 2.1+应用程序中,如何生成指向外部消费场所的链接 例如,假设我想创建一个指向Place1的链接。对于内部消费,我可以做presenter.goTo(newplace1(“token”)。如何将其制作成锚定或某种用户可以粘贴到其浏览器中的链接?如果您已经将令牌映射到某个位置,只需使用href属性创建一个与令牌相等的锚定即可 Anchor anchor = new Anchor("go to place1 ", "token"); 我会这样做: final Place1 place =

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


例如,假设我想创建一个指向Place1的链接。对于内部消费,我可以做
presenter.goTo(newplace1(“token”)
。如何将其制作成
锚定
或某种用户可以粘贴到其浏览器中的链接?

如果您已经将令牌映射到某个位置,只需使用href属性创建一个与令牌相等的锚定即可

Anchor anchor = new Anchor("go to place1 ", "token");
我会这样做:

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();
  }
});

据我所知,我本人是GWT新手,如果您使用超链接而不是锚定,您将不必编写事件处理程序。它会将您重定向到该地点并自动处理历史记录。

您可以使用PlaceHistoryMapper将地点转换为令牌字符串。有关如何在GWT中实现MVP设计的详细信息,请参阅

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

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

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

href不是必须是
PlacePrefix:Token
?如何以编程方式获取
PlacePrefix
?谢谢Thomas,但这不是仍然存在无法获取前缀的问题吗?不,PlaceHistoryMapper是PlaceHistoryHandler用来生成和解析令牌的工具,它(必须!)完全了解PlaceTokenizer的前缀。这是一个不错的解决方案,因为它启用了右键单击“在新选项卡中打开”。
@UiField InlineHyperlink link;

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