gpt4 book ai didi

jsf - 带有 CDI bean 和 @ConversationScoped 的 AJAX 页面

转载 作者:行者123 更新时间:2023-12-02 05:11:12 24 4
gpt4 key购买 nike

我感兴趣的是,当我使用 CDI 时,通过 AJAX 使用 JSF 页面的正确方法是什么。我测试了使用 @SessionScoped 配置 CDI bean,但我发现 AJAX 有问题。

将 AJAX 与配置有 @ConversationScoped 的 CDI bean 一起使用是否合适?

而且我发现我必须将 conversation.begin(); 放入 Bean 构造函数并将 conversation.end(); 放入 Java 方法中,这必须在 session 结束。我能以某种方式自动执行此操作吗?

P.S 我可以使用这段代码在用户关闭页面时自动释放资源吗?

@Remove
public void finishIt(){
conversation.end();
}

最佳答案

And I found that I have to put conversation.begin(); into the Bean constructor and conversation.end(); into Java method which must be when the session is completed.

没错。另见 How to replace @ManagedBean / @ViewScope by CDI in JSF 2.0/2.1一个具体的代码示例。

Can I somehow do this automatically?

如果您想要一个只要您在单个 View 上回发就必须存在的 bean,那么至少升级到 JSF 2.2。它provides CDI 兼容 @ViewScoped开箱即用。

但是,如果您想要一个只要在 View 中引用它就必须存在的 bean,而不管您所在的 View 如何,那么请考虑使用 @ViewAccessScopedDeltaSpike反而。一旦您导航到一个未在任何地方引用该 bean 的 View ,它将被丢弃。

另见:

关于jsf - 带有 CDI bean 和 @ConversationScoped 的 AJAX 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15427217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com