我的GWT应用有一个搜索结果,其中orderid列为超链接。点击后,它会打开另一个显示详细信息的标签。
我想在电子邮件
中外部公开此特定功能http://www.myapp.com/XYZApp.html?orderid=1234
这样用户可以在登录App后直接进入详细信息页面。在JSP世界中,它非常简单。
在GWT中是否有可能显示详细信息页面的调用不在主GWT模块中(XYZApp.html)
答案 0 :(得分:1)
GWT中与URL参数定义的状态类似为Place,由gwt-presenter项目提供。
您可以链接到?orderId=1234
myapp.com#id=1234;
之类的网址参数
转到此网址会触发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,你都应该使用它(或类似的东西)。
答案 1 :(得分:1)
虽然我同意杰森的观点MVP(gwt-presenter是一种实现,但有点像))和GWT很好地融合在一起,我不是gwt-presenter的忠实粉丝(也很复杂)很多,恕我直言)。因此,如果您想为MVP推出自己的“框架”或者只是不想使用MVP(切换到MVP可以是PITA,特别是如果项目很大/很复杂),您可以使用{{ 3}}类,GWT附带:
History.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
String url = event.getValue();
}
});