我目前正在修改一些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/