我的GWT应用程序有一个以orderid列作为超链接的搜索结果。单击时,它会打开另一个显示详细信息的选项卡。
我想在外部公开这个特定的功能,比如在电子邮件中
http://www.myapp.com/XYZApp.html?orderid=1234
使用户在登录App后可以直接进入详情页。在JSP世界中,这是非常简单的。
如果显示详细信息页面的调用不在主GWT模块(XYZApp.html)中,那么在GWT中有可能吗?
发布于 2010-03-30 10:38:42
GWT中类似于URL参数定义的状态是由gwt-presenter项目提供的Place。
您可以链接到myapp.com#id=1234;,而不是像?orderId=1234那样作为URL参数
转到此URL将触发一个PlaceRequestEvent,您可以使用EventBus*订阅该URL。
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,你都应该使用它(或类似的东西)。
发布于 2010-03-30 16:18:08
虽然我同意Jason的观点,即MVP ( gwt-presenter是gwt-presenter的一种实现)和GWT可以很好地结合在一起,但我不是gwt-presenter的粉丝(太复杂了,我不喜欢)。因此,如果你想为MVP推出自己的“框架”,或者只是不想使用MVP (切换到MVP可能很麻烦,特别是如果项目很大/复杂),你可以只使用GWT附带的History类:
History.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
String url = event.getValue();
}
});https://stackoverflow.com/questions/2542395
复制相似问题