我在使用托管 bean JSF 2.0 中的属性时遇到了麻烦。
显示.xhtml
<p:commandButton value="Show" actionListener="#{ABean.ajaxShow}" update="info" /> <p:commandButton value="Hide" actionListener="#{ABean.ajaxHide}" update="info" /> <p:outputPanel id="info"> <p:fieldset rendered="#{ABean.show}"> Info </p:fieldset> </p:outputPanel>
ABean.java
@Named("ABean")
公共类 ABean { 私有布尔显示;
public void ajaxShow() { show = true; } public void ajaxHide() { show = false; } //getter setter
}
这个项目是设置spring security 3.1.2和管理用户系统。
当有 2 个用户登录并打开此页面时,用户 1 单击“显示”按钮,然后显示“信息”。因此,当用户 2 转到此页面时,他会看到显示的信息。如果用户 2 单击隐藏按钮,则信息被隐藏。刷新用户 1 访问的此页面,信息被隐藏。
那很奇怪。我需要用户 1 访问的页面仅在用户 1 单击按钮时更改信息状态(显示/隐藏),而不是由用户 2 在用户 2 的页面上引起的。
我认为这是因为 2 个用户的 2 个会话仅使用 1 个托管 bean 实例。我该怎么办?请帮我解决,谢谢!
PS:我尝试为 ABean 添加@SessionScoped、@ViewScoped、@RequestScoped,但没有任何改变。