gwt - history - 如何“保持”UI状态

时间:2014-03-08 15:54:28

标签: gwt gwt-history

我尝试了example,它展示了如何从历史记录中获取数据以重新生成UI;我在大多数“历史使用”示例中看到的东西都只与UI重新生成有关,所以它是非静态的...

但是“每个UI状态可能有其独特的URL,就像JSF对流程一样”?例如,我有app url喜欢

http://localhost:8080/myapp/MyApp.html

app默认UI包含主菜单,有助于浏览我的测试目录;我试图通过以这种方式构建URL来保持历史UI动态

http://localhost:8080/myapp/MyApp.html#menu_testcategory_page1

但是当我点击互联网浏览器“刷新”按钮时,网址与http://localhost:8080/myapp/MyApp.html#menu_testcategory_page1保持一致,但用户界面恢复到默认状态:(

所以我的问题是

即使在点击浏览器的刷新按钮后,纯gwt还是有一种保持相同UI状态的最佳方式(我的意思是发生卸载/加载窗口事件)?

感谢

P.S。 gwt 2.3

2 个答案:

答案 0 :(得分:3)

您应该实施活动和地点模式:http://www.gwtproject.org/doc/latest/DevGuideMvpActivitiesAndPlaces.html

我使用它已经3年了,而且效果非常好。

但是,请注意,当您重新加载页面时,您将丢失所有状态,数据等。如果您需要保留其中的一部分,则可以使用Place(#page1)和令牌的组合告诉相应的Activity表示该Place的View的状态,即(#page1:item = 5)。

答案 1 :(得分:1)

你可能只是忘了打电话

History.fireCurrentHistoryState();

从您的入口点。