在单个页面上避免JSF 1.2中的ViewExpiredException

时间:2016-03-04 15:01:04

标签: jsf jsf-1.2 viewexpiredexception

我有一个不受保护的登录页面,可以通过不同的导航案例访问。

问题:许多用户访问该登录页面并暂停一段时间,然后再次登录。繁荣!发生了可怕的ViewExpiredException!我想避免使用ViewExpiredException让他们再次登录。我不希望所有视图都有解决方法,只需要页面上的登录。

我无法迁移到JSF2(出于预算原因)。

我有这个配置:

javax.faces.STATE_SAVING_METHOD = server

我无法改变(我们有一个有限的带宽和阻止http请求的机制比一个输入字段非常有限的小型页面更大。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我无法从JSF上下文中获取登录页面,因为我的登录页面中有很多行为依赖于JSF上下文。

我终于通过肮脏的黑客解决了这个问题。在RestoreViewPhase侦听器中,我检测到当前视图已过期,并且我从HTTP请求中获取所有参数并进入会话管理Bean。

然后,当我回到登录页面时,一些javascript会自动重新提交表单以及新视图。

非常hacky,但它的工作原理。