java - JSF : How to update one session bean base on another session bean?

标签 java session jsf

我目前正在修改一些jsf应用程序。我有两颗 bean 。

  • 连接Bean
  • UIBean

当我第一次在connectionBean中设置连接参数时,UIBean能够读取我的connectionBean信息并显示正确的UI树。

但是,当我尝试在同一 session 中设置连接参数时。我的UIBean仍然会使用之前的connectionBean信息。

它只有在我使整个 httpSession 无效后才会使用。

我是否可以让一个 session bean 更新另一个 session bean?

最佳答案

在我看来,这是 UIBean 引用 ConnectionBean 过时版本的问题。这是 JSF 的一个问题 - 如果您重新创建一个 bean,JSF 将不会更新所有其他 bean 中的引用。

您可以尝试每次获取 ConnectionBean 的“新鲜”副本。以下方法将按名称检索支持 bean:

protected Object getBackingBean( String name )
{
    FacesContext context = FacesContext.getCurrentInstance();

    return context
            .getApplication().createValueBinding( String.format( "#{%s}", name ) ).getValue( context );
}

如果不知道代码的具体情况以及如何使用 bean,就很难更具体!

关于java - JSF : How to update one session bean base on another session bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/284038/

相关文章:

session - 用户主体不保留在 tomcat session 中是有原因的吗?

javascript - 使用 SSO 在两个 Node 应用程序之间共享 session

java - 字符串等于和 == 与字符串连接

java - 如何用guice注入(inject)资源

java - Jenkins-Traub算法开源java移植?

javascript - 保存数据直到浏览器关闭的方法

java - JSF:有条件地呈现列表项 (<li>)

java - Apache Tomcat、Eclipse、JBoss 和 RichFaces

jsf - PrimeFaces DataTable - 需要根据行选择启用/禁用组件

java - 如果我们在字符串中有所需的货币代码,我们如何更改 freemarker 上的默认货币?