我尝试了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
答案 0 :(得分:3)
您应该实施活动和地点模式:http://www.gwtproject.org/doc/latest/DevGuideMvpActivitiesAndPlaces.html
我使用它已经3年了,而且效果非常好。
但是,请注意,当您重新加载页面时,您将丢失所有状态,数据等。如果您需要保留其中的一部分,则可以使用Place(#page1)和令牌的组合告诉相应的Activity表示该Place的View的状态,即(#page1:item = 5)。
答案 1 :(得分:1)
你可能只是忘了打电话
History.fireCurrentHistoryState();
从您的入口点。