我有一个不受保护的登录页面,可以通过不同的导航案例访问。
问题:许多用户访问该登录页面并暂停一段时间,然后再次登录。繁荣!发生了可怕的ViewExpiredException!我想避免使用ViewExpiredException让他们再次登录。我不希望所有视图都有解决方法,只需要页面上的登录。
我无法迁移到JSF2(出于预算原因)。
我有这个配置:
javax.faces.STATE_SAVING_METHOD = server
我无法改变(我们有一个有限的带宽和阻止http请求的机制比一个输入字段非常有限的小型页面更大。
有什么想法吗?
答案 0 :(得分:1)
我无法从JSF上下文中获取登录页面,因为我的登录页面中有很多行为依赖于JSF上下文。
我终于通过肮脏的黑客解决了这个问题。在RestoreViewPhase侦听器中,我检测到当前视图已过期,并且我从HTTP请求中获取所有参数并进入会话管理Bean。
然后,当我回到登录页面时,一些javascript会自动重新提交表单以及新视图。
非常hacky,但它的工作原理。