@ org.omnifaces.cdi.ViewScoped在卸载已毁坏的视图时调用@PostConstruct

时间:2018-09-24 12:51:29

标签: jsf omnifaces view-scope postconstruct

在使用 @ org.omnifaces.cdi.ViewScoped 和多个标签时,我遇到了问题:

我在TestPage.xhtml中有一个链接,该链接打开另一个带有请求参数“ someValue”的页面(ShowValuePage.xhtml)。如果我在新选项卡中打开此链接10次并在第一个打开的选项卡中导航,则 PostConstruct将被再次调用,而不仅仅是导航。

如果我多次从ShowValuePage导航回到TestPage,也会发生同样的情况。 (要对此进行测试,我们必须多次单击“显示值”和“主页”链接。)

仅当打开的标签页超过了web.xml值“ numberOfLogicalViews”和“ numberOfViewsInSession”中定义的标签时,这种情况才会发生。

我已经建立了一个显示此问题的小项目。有关该过程的确切说明,请参见readme.txt。

Project on github

是否有解决方法?

感谢您和最诚挚的问候

Heinrich

PS:我将其报告为bug on Omnifaces,但是一个星期以来,我没有得到任何答案。

1 个答案:

答案 0 :(得分:2)

在OmniFaces 2.7.1和3.3中已修复。

症状是由最初在适当位置进行的显式重定向引起的,该重定向最初是为了触发任何记住“最后一个受限制的请求”的身份验证框架而在会话终止时记住正确的请求。仅当会话实际上是新会话时,才发送重定向来解决此问题。