【发布时间】:2014-03-21 17:00:43
【问题描述】:
这是 stackoverflow.com 上一些问题的后续问题:
JSTL c:forEach causes @ViewScoped bean to invoke @PostConstruct on every request
Why does @PostConstruct callback fire every time even though bean is @ViewScoped? JSF
但是,我们使用的是 Mojarra 2.1.22,但我们的 Seam 3 CDI @ViewScoped 注释 bean 总是被重构,即执行带有 @PostConstruct 注释的方法,并且我们在每个 AJAX 请求上都会获得一个新 bean。
几个月来我一直听到的消息(现在是 2014 年 2 月)是 Mojarra 2.1.18+ 修复了许多这些错误,并且当视图从<c:forEach items="#{mySeam3CdiViewScopedBean.items}" ... >.
这里有一些错误:
https://java.net/jira/browse/JAVASERVERFACES-1665
https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-928()
https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-787
https://java.net/jira/browse/JAVASERVERFACES-2688
与我在顶部提到的示例的唯一区别是我们使用的是 Seam 3.1 Faces CDI @ViewScoped (+ @Named) 而不是“原生”JSF @ViewScoped ( + @ManagedBean)。
问题:
Seam 3 Faces (3.1 Final) 是它不起作用的原因吗?
(我们怎样才能知道?将我们所拥有的内容转化为测试用例并不容易......也许有人知道?)
PS:我知道这更像是一个论坛问题,但我希望这里处理 JSF 2 但不一定是 Seam 3(Faces)的人可以提供反馈。
【问题讨论】:
-
您使用的是 Mojarra 2.1.18。这仅在 JSF 2.2 (Mojarra 2.2) 中得到修复。该错误将出现在您的构建中。
-
如前所述,我们正在使用 Mojarra 2.1.22。 ;-)
标签: jsf-2 jstl cdi view-scope seam3