问题标签 [conversation-scope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
255 浏览

ajax - JSF 'Tab' bean 范围

我需要为两个页面创建一个包含两个页面和一个支持 bean 的 webapp。我试过@SessionScoped了,但是当我在浏览器中打开其他选项卡时,我看到的数据与上一个选项卡中的数据相同。

我尝试使用MyFaces Orchestra,但在每个 AJAX 请求上都会创建支持 bean。

如何解决问题?

事先感谢,伊利亚

0 投票
4 回答
2702 浏览

jsf - 如何避免 jsf 中的 BusyConversationException

我在浏览 jsf 项目中的页面时遇到 BusyConversationException。如果用户在 ajax 调用期间试图导航到另一个页面,这通常会发生。当用户在单击另一个链接后立即单击一个链接而不等待页面加载时,也会发生这种情况。

例如,如果用户点击了多个链接,这些链接是通过类似于下面的代码生成的,我们肯定会得到这个异常。另一个例子是,假设用户在文本字段中输入查询,我们的应用程序发出 ajax 调用来搜索此查询。在该查询期间,如果用户单击某个按钮导航到另一个页面,也会发生 BusyConversationException。

我可以在扩展 ExceptionHandlerWrapper 类的 ExceptionHandler 类中捕获这种类型的异常,但我无法保存当前状态,对于这种情况,我能做的最好的事情就是在发生此异常时重定向到主页。

有什么办法可以避免这种情况吗?提前感谢您的回答和评论。

0 投票
1 回答
372 浏览

jsf - 如何捕捉不存在的对话异常

我有一个链接如下:

当我想尝试通过 URL 传递类别 ID 时,它显示以下错误:

WELD:00032 找不到恢复 id 1 的对话

如果我只是简单地写如下链接

然后它工作正常。我在第一个链接中做错了什么?

0 投票
1 回答
1223 浏览

java - 使用 Ajax 的对话范围 CDI

我正在尝试使用 CDI 对话范围,但我有一些疑问: - 使用 ajax 请求时是否需要传播 cdi id?

例如:

因为当我不这样做时,我意识到方法“@postConstruct”被再次初始化,并创建了一个新的 CID。

托管豆代码:

谢谢。再见!

0 投票
1 回答
344 浏览

jsf - 如何确保 JSF2 中的积极对话?

我们有一个基于 JSF2 的 Web 应用程序,它对购买过程进行建模,用户在类似向导的庄园中输入和选择不同的信息,可以向前和向后导航,并在某个时间点完成该过程。

所以没什么特别的,应用程序和用户之间的典型对话。为此,我尝试了常规和 MyFaces 对话范围,但我知道如何开始和结束对话。我仍然无法确保进行积极的对话,所以换句话说,我如何避免用户通过键入页面 URL 进入中间过程,而不是将他重定向到第 1 步?

0 投票
1 回答
2162 浏览

jsf - 对话范围 - 对话传播

在 JSF 页面上,每个句柄文件上传事件都会创建一个新的 Bean 实例。好像每次都是新客户一样。此外,网络浏览器似乎也是一个不同的客户端。

那么,有没有办法让这些仅来自一个浏览器的 FileUploadEvents 只实例化一个 Bean?

我正在尝试使用 CDI 而不是 @ViewScoped JSF bean。

索引.xhtml:

豆:

0 投票
0 回答
850 浏览

spring - 春天的谈话范围

我们有在 spring 和 jsf 1.2 上运行的 java web 应用程序。
我们还使用 apache Orchestra 作为对话范围的框架。
但是我们总是遇到 Orchestra 的问题,最后一个问题是 Orchestra ConversationManager 不支持序列化,因此我们无法序列化会话并将其复制到不同的服务器实例。但是我们需要会话复制。所以我们决定摆脱管弦乐队,并使用一些替代方案来扩大对话范围。实际上我们主要使用会话来扩展请求范围,因此切换到视图范围可以解决我们的问题。

  • 也许有人知道我们可以使用哪些库来获取对话或查看范围作为弹簧自定义范围?
  • 切换到seam不是一个选项,太多的代码加上spring。切换到 jsf 2 可以解决我们的问题吗?
  • 或者也许有人在里面连载了管弦乐队的对话?
  • 有任何想法吗?
0 投票
1 回答
702 浏览

spring - 在 Spring 控制器中使用 CDI ConversationScoped bean

我正在尝试制作应该将百里香与弹簧控制器一起使用的 webapp。但我想将一些 CDI ConversationScoped bean 注入到我的 Spring 控制器中。现在我设法用我的 Spring 应用程序配置 CDI,当我尝试将 CDI bean 注入我的控制器时,它似乎工作正常,但是当我尝试注入 Conversation bean 时,它失败并出现错误:

0 投票
1 回答
1376 浏览

jsf - @ConversationScoped 在 JSF/PrimeFaces 应用程序中的两个 bean 之间

这是我的困境。JSF/PrimeFaces Web 应用程序。我有一个@ManagedBean bean,我将调用与request.xhtml 关联的RequestBean.java。我有一个名为 ResponseBean.java 的 bean @ManagedBean 与 response.xhtml 相关联。RequestBean 有一个类似 List wlist = getWidgetList(); 的方法。

wList 中的元素将填充与 ResponseBean.java 关联的 response.xhtml。

我不允许为此使用 Session 属性,所以我相信它必须涉及@ConversationScoped。

有谁知道这样的问题的好教程或示例链接?

0 投票
1 回答
891 浏览

jsf-2 - 会话无效时会话被破坏

我有一个实现HttpSessionListener的SessionManager。在SessionManager中,我有一个所有活动会话的静态哈希表。我正在尝试创建一个强制会话无效的函数。它看起来像:



这绝对是我想要做的,那就是破坏目标会话。但是,它似乎对我的@ConversationScoped托管 bean 有副作用。

在我的ConversationBean中,我有一个拥有一些价值的属性。我刚刚注意到,在sessionRegistry中的会话无效后,存储在 ConversationBean 上的值被破坏。

  • 我正在使另一个会话无效(来自sessionRegistry而不是当前会话)
  • 我在会话无效之前和之后打印了来自ConversationBean的值,它仍然存在。只有当我离开显示活动会话列表的@ViewScoped页面时,它才会被销毁。(使用@PreDestroy捕获它)
  • 此外,在@ViewScoped bean 的@PreDestroy注释方法上,我尝试打印对话 ID,但它已经无效。是的,ConversationBean的哈希码也不同,这意味着它与我调用session.invalidate之前的实例不同。


- - 编辑 - - -

这个例子展示了我想要实现的目标:

假设我有一个应用程序范围的哈希表sessionRegistry,具有以下值:


我以管理员身份登录。现在我相信我有一个不同的会话,比如说 HttpSession4。我想尝试从应用程序范围的哈希表中启动一些会话,我这样做:


我在登录HttpSession4时 销毁了HttpSession1。在我的理解中,HttpSession1 的会话应该被销毁,而不是当前会话,它应该与 HttpSession4 相关联。


我的问题是,这真的是@ConversationScoped托管 bean 的正常行为吗?它似乎与我无效的会话相关联。