我有一个示例应用程序,包含以下三个步骤
输入用户详细信息 -> 个人详细信息 -> 完成
当我单击一个链接时,它将调用我的 vaadin 应用程序。问题是一旦我的三步过程完成,当我尝试再次单击我的 vaadin 链接时,它仍然显示最终向导页面“完成”
(如果我想再次查看第一页,即进入用户详细信息向导页面,需要清除浏览器缓存或重新启动浏览器)
我有一个示例应用程序,包含以下三个步骤
输入用户详细信息 -> 个人详细信息 -> 完成
当我单击一个链接时,它将调用我的 vaadin 应用程序。问题是一旦我的三步过程完成,当我尝试再次单击我的 vaadin 链接时,它仍然显示最终向导页面“完成”
(如果我想再次查看第一页,即进入用户详细信息向导页面,需要清除浏览器缓存或重新启动浏览器)
由于 Vaadin 将会话保存在内存中,因此您的应用程序在看到新的浏览器会话(即清除缓存或重新启动浏览器)之前不会重置。在开发期间清除会话的另一种方法是将 ?restartApplication 添加到应用程序的 URL。这也将清除应用程序状态。
因此,考虑到这一点,很明显,如果您希望在正常使用 Vaadin 应用程序状态时重置它,您必须以编程方式确保内部逻辑以某种方式工作。例如,为您的第一个视图调用自定义的 reset() 方法。
确保不要将应用程序的基于会话的状态与每次按下重新加载或再次打开链接时重置应用程序的页面状态混淆,而无需创建新的浏览器会话。
Vaadin 书中关于此的部分:http: //vaadin.com/book/-/page/architecture.server-side.html
?restartApplication
在浏览器中调用应用程序时,只需在 URL 中附加参数。例如,如果您将应用程序调用为localhost:8080/myvaadinapp/
,则尝试调用 as localhost:8080/myvaadinapp/?restartApplication
。
它告诉 Vaadin Servlet 在加载页面时创建新的 Application 实例。