我有一个更大的应用程序,我正在使用,但GWT History documentation有一个简单的例子来演示这个问题。该示例复制为方便:如何重建GWT历史堆栈?
public class HistoryTest implements EntryPoint, ValueChangeHandler
{
private Label lbl = new Label();
public void onModuleLoad()
{
Hyperlink link0 = new Hyperlink("link to foo", "foo");
Hyperlink link1 = new Hyperlink("link to bar", "bar");
Hyperlink link2 = new Hyperlink("link to baz", "baz");
String initToken = History.getToken();
if (initToken.length() == 0)
{
History.newItem("baz");
}
// Add widgets to the root panel.
VerticalPanel panel = new VerticalPanel();
panel.add(lbl);
panel.add(link0);
panel.add(link1);
panel.add(link2);
RootPanel.get().add(panel);
History.addValueChangeHandler(this); // Add history listener
History.fireCurrentHistoryState();
}
@Override
public void onValueChange(ValueChangeEvent event)
{
lbl.setText("The current history token is: " + event.getValue());
}
}
问题是,如果刷新应用程序,历史堆栈会被吹走。如何保留历史记录,以便用户刷新页面时,后退按钮仍然有用?
是,历史框架已经到位。事实证明,这不是我控制下的技术问题,现在我感到很尴尬。 有些事情在发挥作用。首先,GWT浏览器在刷新时丢失历史记录(有时我忘记编译)。其次,IE对于历史表现奇怪。第三,一些开发者没有把历史令牌推向堆栈。 感谢您看看这个对我来说,抱歉的麻烦。 – Michael 2009-06-22 12:05:41