【发布时间】:2013-03-03 20:40:15
【问题描述】:
我很感兴趣当我使用 CDI 时,将 JSF 页面与 AJAX 一起使用的正确方法是什么。
我测试了使用@SessionScoped 配置CDI bean,但我发现AJAX 有问题。
将 AJAX 与配置有 @ConversationScoped 的 CDI bean 一起使用是否合适?
我发现我必须将 conversation.begin(); 放入 Bean 构造函数中,并将 conversation.end(); 放入 Java 方法中,这必须在会话完成时进行。我可以以某种方式自动执行此操作吗?
P.S 我可以使用此代码在用户关闭页面时自动释放资源吗?
@Remove
public void finishIt(){
conversation.end();
}
【问题讨论】:
-
您使用的是什么 CDI 实现? Seam 还是 Apache CODI? CODI 有我非常喜欢的
@ViewAccessScoped。只要有一个 jsf 页面引用它,它就会存在。有点像自动对话 -
我使用包
javax.inject.Named。我想这是标准 JSF 框架的一部分。 -
"...但是我发现AJAX有问题。"到底是什么问题?
-
@MattHandy 我在这里描述了这个问题:stackoverflow.com/questions/9761568/…
-
CODI、SEAM3、DeltaSpike(= CODI、SEAM3 等的合并)是 CDI 扩展/附加组件。特别是。 CODI 和 DeltaSpike 可以与 Weld 和 OpenWebBeans 一起使用(= 真正的 CDI 实现)。参见例如builds.apache.org/view/A-F/view/DeltaSpike 链接在 incubator.apache.org/deltaspike/build.html