如何在电子邮件中提供指向gwt应用程序(但不是主页)中特定方法的超链接

如何在电子邮件中提供指向gwt应用程序(但不是主页)中特定方法的超链接,gwt,Gwt,我的GWT应用程序有一个搜索结果,其中orderid列为超链接。单击会打开另一个选项卡,显示详细信息 我想在电子邮件中对外公开这一特定功能 这样,用户可以在登录应用程序后直接进入详细信息页面。在JSP世界中,这非常简单 考虑到显示详细信息页面的调用不在GWT主模块(XYZApp.html)中,GWT中是否可能出现这种情况?GWT中的模拟URL参数定义状态是s,由项目提供 您可以链接到myapp.com#id=1234 转到此URL将触发一个PlaceRequestEvent,您可以使用Even

我的GWT应用程序有一个搜索结果,其中orderid列为超链接。单击会打开另一个选项卡,显示详细信息

我想在电子邮件中对外公开这一特定功能

这样,用户可以在登录应用程序后直接进入详细信息页面。在JSP世界中,这非常简单


考虑到显示详细信息页面的调用不在GWT主模块(XYZApp.html)中,GWT中是否可能出现这种情况?

GWT中的模拟URL参数定义状态是s,由项目提供

您可以链接到
myapp.com#id=1234

转到此URL将触发一个
PlaceRequestEvent
,您可以使用EventBus*订阅该事件

eventBus.addHandler(PlaceRequestEvent.getType(), new PlaceRequestHandler() {
  @Override
  void onPlaceRequest(PlaceRequestEvent event) {
    String id = event.getRequest().getParameter("id", "");
    // show the item with this ID...
  }
});

*EventBus非常棒,无论您是否决定使用Places,您都应该使用它(或类似的东西)。

虽然我同意Jason的观点(gwt presenter是它的一个实现,某种程度上;)和gwt配合得很好,但我不是gwt presenter的超级粉丝(我觉得事情太复杂了)。因此,如果您想推出自己的MVP“框架”,或者只是不想使用MVP(切换到MVP可能是一个PITA,特别是当项目较大/复杂时),您可以使用GWT附带的类:

History.addValueChangeHandler(new ValueChangeHandler<String>() {
    @Override
    public void onValueChange(ValueChangeEvent<String> event) {
        String url = event.getValue();
    }
});
History.addValueChangeHandler(新的ValueChangeHandler(){
@凌驾
ValueChange上的公共作废(ValueChangeEvent事件){
字符串url=event.getValue();
}
});

这是一个非常好的建议。在这一点上,一个完整的MVP框架可能对您的需求来说太多了。使用这种更简单的方法可以完成任务,但您可能也希望至少研究一下MVP和gwt presenter,这取决于应用程序的复杂性。