当前位置: 首页 > 面试题库 >

JSF-会话范围的bean,由不同机器上的浏览器共享

齐运诚
2023-03-14
问题内容

我们有一个搜索表单,其中过滤器绑定到托管bean(会话范围)上的属性。它不是组件绑定,它的属性绑定像<h:inputText value="#{searchBean.filter}"/>

来自不同机器(然后是不同的会话)的提交数据混合在一起。您搜索“ john”,并得到“ mary”,因为您旁边的那个人刚刚搜索了“
mary”。您的价值searchBean.filter在于获取 提交的数据而不是您的数据。

我已经在Google上搜索了很多,没有找到解决方案,只是发生了同样的问题。

有人遇到过这个问题吗?有什么线索吗?

谢谢!


问题答案:

这可能有两个原因:

  1. 该bean实际上在应用程序范围内。
  2. 有争议的财产被宣布 static

要解决1),只需确保它在会话范围内即可。
要解决2),只需删除非法的修饰符即可。



 类似资料:
  • 问题内容: 我们有一个基于JSF 2.0(MyFaces)构建并在Weblogic应用服务器上运行的应用程序。我们面临有关http Session的问题。 问题: 假设我已经在两个不同的IE窗口中打开了该应用程序,并在第一个窗口中提供了一些搜索输入。在第二个窗口的会话中共享在第一个窗口中接收到的搜索结果数据。 注: 。Bean的作用域为,范围为。共享变量没有问题。 知道为什么会这样吗,以及防止这种

  • 问题内容: 我需要从servlet访问会话范围的bean。我已经试过了 在本作描述的职位。但是我只能得到null的结果,尽管UserBean的一个实例已经被无效化了。这些是我用于userBean的注释/导入: 为什么不能摆脱servlet的一些背景知识:我的jsf页面中有一个文件上传小程序。该applet期望可以发送POST请求的地址。(我无法编辑此发帖请求以添加更多字段或其他内容)。然后,我的s

  • 我有一个简单的pojo,其中有一个字段: 现在,我使用两个不同的浏览器窗口(firefox和chrome)作为两个不同的用户登录到我的web应用程序。令我惊讶的是,当我从一个会话设置配额的值(使用)时,新的值将可用于另一个会话(当调用时)。我希望每个用户会话都有自己的bean实例;这不是spring中会话作用域bean的用途吗? 我一定错过了什么。可能是什么? 编辑: 实现类如下所示: 最后,这里

  • 我有相同的图像和相同大小的画布,但是输出是不同的。我想要同样的输出,该怎么做呢?

  • 我编写了一个会话范围的托管bean,用于在domino xpages应用程序中缓存sesion用户特定的信息,如下代码所示: 然后,我在faces配置中声明了它,使其成为会话范围的bean: 在测试bean时,我通过#{NBUser.fullUserName}使用它,它并不总是返回当前domino http会话上下文的用户,例如,我首先由用户“user1”登录并注销,然后由user2登录,bean

  • 我有一个简单的有状态会话bean(一个单操作堆栈计算器): 这个servlet工作正常: 除了容器在不同的会话中提供相同的bean之外,这种方法工作得很好。我知道会话不一样,因为我打印会话ID,并且在不同的机器上使用不同的客户端。我知道bean是相同的,因为它具有相同的instanceID值和相同的堆栈内容。 我希望如果在不同的机器上运行客户机,我会得到一个新的计算器实例。 我尝试了WildFly