2010-11-26 70 views
0

我有这样的问题:当我打电话的内容类(谁决定查看哪个页面,由于#param一)我不出头这样的:GWT - 故障与历史第一令牌

History.addValueChangeHandler(this); 
if(!History.getToken().isEmpty()){ 
    changePage(History.getToken()); 
} else { 
    History.newItem("homepage"); 
} 

所以,现在,如果我看浏览器的导航栏,我看到http://localhost:8084/GWT/?gwt.codesvr=127.0.0.1:9997#homepage。这是正确的。不幸的是,如果我在浏览器上按Back,我看到它加载了以前的地址,例如http://localhost:8084/GWT/?gwt.codesvr=127.0.0.1:9997

我在开头有一种“假”页面。

1 - 我该如何解决?并使用默认令牌启动应用程序,或在历史记录中将其删除。或者在存在空令牌时以及在使用某种switch/if-else决定工作流之后调用onValueChange方法。

2 - 作为相关问题,当我在构造函数类中调用History.addValueChangeHandler(this);时,netbeans会说“在构造函数中泄漏这个”。这是什么意思?

干杯

回答

0

恕我直言,家中的URL形式的 “原://主机名#主页” 是丑陋:)

1.只是一个建议:

String token = History.getToken(); 
String page = token.isEmpty() ? "homepage" : token; 
changePage(page); 

2.请问您实现入口点ValueChangeHandler<String>

+0

谢谢你的答案。呃,不是真的。我实现了我的内容(流程面板)可以更改的界面。是错的? – markzzz 2010-11-27 12:30:16

+0

无论如何我无法解决这个问题... arghh – markzzz 2010-11-27 21:29:36

+0

还有一件事,你应该考虑到:Internet Explorer不能正确处理历史状态没有特殊的iframe,应该被合并到您的index.html 部分。它应该看起来像 ...