在使用 @ org.omnifaces.cdi.ViewScoped 和多个标签时,我遇到了问题:
我在TestPage.xhtml中有一个链接,该链接打开另一个带有请求参数“ someValue”的页面(ShowValuePage.xhtml)。如果我在新选项卡中打开此链接10次并在第一个打开的选项卡中导航,则 PostConstruct将被再次调用,而不仅仅是导航。
如果我多次从ShowValuePage导航回到TestPage,也会发生同样的情况。 (要对此进行测试,我们必须多次单击“显示值”和“主页”链接。)
仅当打开的标签页超过了web.xml值“ numberOfLogicalViews”和“ numberOfViewsInSession”中定义的标签时,这种情况才会发生。
我已经建立了一个显示此问题的小项目。有关该过程的确切说明,请参见readme.txt。
是否有解决方法?
感谢您和最诚挚的问候
Heinrich
PS:我将其报告为bug on Omnifaces,但是一个星期以来,我没有得到任何答案。
答案 0 :(得分:2)
在OmniFaces 2.7.1和3.3中已修复。
症状是由最初在适当位置进行的显式重定向引起的,该重定向最初是为了触发任何记住“最后一个受限制的请求”的身份验证框架而在会话终止时记住正确的请求。仅当会话实际上是新会话时,才发送重定向来解决此问题。