【问题标题】:How do I use CODI Conversation? Specifically, how to end it?如何使用 CODI 对话?具体来说,如何结束呢?
【发布时间】:2011-11-21 12:08:05
【问题描述】:

根据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 不会部署它。

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

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

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

【问题讨论】:

标签: jsf-2 myfaces codi


【解决方案1】:

在返回之前调用 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 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    相关资源
    最近更新 更多