根据此处和此处发布的建议,我查看并使用我的应用程序安装了MyFaces CODI。我最担心的是克服 Weld 实现 @ConversationScoped 功能的缺点。在遇到一些小问题后,我让它在我的 GlassFish 3.1 开发平台上运行,然后我将所有 bean 转换为使用
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped;
最后,我现在似乎并没有比以前走得更远。我不必再调用conversation.begin()方法了,这很好,但是 bean 在浏览器离开页面并返回后会徘徊。
我所希望的是与 CDI 一起使用的 JSF 2.0 @ViewScoped 的功能。一旦用户离开页面,如果用户回来,支持 bean 应该被丢弃并重新创建。有没有办法用 CODI 做到这一点?
顺便说一句,文档说它将获取 @ViewScoped 注释并正确处理它们。我尝试了这个并且得到了并且 Weld 不会部署它。
PS 我正在使用 myfaces-extcdi-dist-jsf20 0.9.5 版。我尝试安装核心和 JSF 2 可选模块 akibe,但它不会部署在我的 GlassFish/Weld 平台上。非常感谢这里的任何建议。
更新 1:我最终尝试了 CODI 支持的 ViewAccessScope 注释,这似乎符合我的要求。
后续问题。Apache 维护的 maven 存储库的最新捆绑包是 0.9.5——有人可以发布获取最新版本的 pom.xml 段吗?