我如何使用CODI对话?具体来说,如何结束呢?

时间:2011-09-20 22:48:31

标签: jsf-2 myfaces codi

根据发布的herehere建议,我查看并安装了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不会部署它。

P.S。我使用myfaces-extcdi-dist-jsf20版本0.9.5。我尝试安装核心和JSF 2可选模块akibe,但它不会部署在我的GlassFish / Weld平台上。这里的任何建议都非常赞赏。

更新1:我最终尝试了CODI支持的ViewAccessScope注释,这似乎做了我想要的。

后续问题。 Apache维护的maven存储库的最新捆绑包是0.9.5 - 有人可以发布获取最新版本的pom.xml段吗?

1 个答案:

答案 0 :(得分:2)

在返回之前调用conversation.close() - 确保导入了正确的注释org.apache ...而不是javax ... - 请参阅Wiki或使用ViewAccessScope。我们在Glassfish 3.1.1中使用:bundle没有问题。 myfaces-extcdi-bundle-jsf20-1.0.1.jar是你需要的唯一jar。还请注意,没有“它”。使用CODI,您可以进行细粒度的可分组对话,而不是通过标准CDI对话获得的单一且不灵活的内容。

使用Maven构建的最新版本的设置也在Wiki