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