我有一个在 glassfish 3.1 上运行的 JSF 2.0 Web 应用程序,它在 IE、FF、Safari 和 Chrome 上运行良好。
当我在另一个网站的 iframe 中添加我的网站的 url 时,单击 iframe 中的任何按钮后,我得到 ViewExpiredException - 这仅在 Safari 上发生,在 IE、FF、Chrome 中运行良好。
<iframe style="width: 100%; height: 800px" src="url_of_my_website" frameBorder="0"></iframe>
以下是我的观察
- 在 glassfish 3.0.1 上部署了相同的应用程序,问题没有发生
- 如果我在没有框架的情况下打开我的网站,无论浏览器如何,它都可以正常工作
- 使用 JSF1.2 和 RF 3.3.3 开发了相同的应用程序,问题没有发生
根据我的理解,当在会话过期的页面上执行任何操作时,我们会得到 ViewExpiredException。但在这种特殊情况下,它发生在网站加载加载之后。
我不确定是什么原因造成的。是 Safari/JSF 2.0/GF 3.1/IFRAME?
更新: 我发现了一个有趣的问题。在我的主页上,我有 ah:commandLink 将我重定向到新页面。另外,我有一个 href 链接可以重定向到其他页面。当我单击 commandLink 时,我得到 ViewExpiredException 但是当我单击 href 链接时,我没有得到任何异常并且页面被重定向并且我可以在会话 cookie 建立时继续进行进一步的操作。