非Bean托管属性是否在目标Bean中更新,而JSF中的源Bean中的属性发生了变化?反之亦然

时间:2014-08-21 07:18:17

标签: jsf jsf-2

我在一个bean中使用一个属性作为另一个bean中的托管属性。

我面临的问题是改变了源bean中的属性,目标bean的托管属性 NOT 得到更新。如果Java使用引用而不是在内存中创建新对象,那么这不应该发生,但确实如此。

我的bean都是会话范围的。这会影响房产的注入吗?这是否意味着视图中的更改 NOT 如果bean是会话范围的,则初始化注入?即使这样,它也反对用户BalusC在这个答案的评论中提出的参考想法。

How to get managedbean property from another bean in JSF

1 个答案:

答案 0 :(得分:1)

显然,您直接引用目标bean的属性而不是目标bean本身。

以下确实是错误的:

@ManagedProperty("#{otherBean.property}")
private String otherBeanProperty;

String是不可变的,你基本上是复制属性。这不是可供参考的。

相反,你应该这样做:

@ManagedProperty("#{otherBean}")
private OtherBean otherBean;

然后在任何source bean的方法中通过getter获取所需的属性。