在JSF中,目标Bean中的非Bean管理的属性不会随着源Bean中属性的更改而更新吗?反之亦然
我将一个bean中的属性用作另一个bean中的托管属性 我面临的问题是源bean中属性的更改,目标bean的托管属性没有得到更新。如果Java使用引用而不是在内存中创建新对象,那么这种情况不应该发生,但确实发生了 我的两个bean都是会话作用域。这是否会影响财产的注入?这是否意味着如果bean是会话范围的,视图中的更改不会初始化注入?即便如此,这也违背了用户巴卢斯在对这个答案的评论中提出的参考意见在JSF中,目标Bean中的非Bean管理的属性不会随着源Bean中属性的更改而更新吗?反之亦然,jsf,jsf-2,Jsf,Jsf 2,我将一个bean中的属性用作另一个bean中的托管属性 我面临的问题是源bean中属性的更改,目标bean的托管属性没有得到更新。如果Java使用引用而不是在内存中创建新对象,那么这种情况不应该发生,但确实发生了 我的两个bean都是会话作用域。这是否会影响财产的注入?这是否意味着如果bean是会话范围的,视图中的更改不会初始化注入?即便如此,这也违背了用户巴卢斯在对这个答案的评论中提出的参考意见 显然,您直接引用的是目标bean的属性,而不是目标bean本身 下面的说法确实是错误的: @Man
显然,您直接引用的是目标bean的属性,而不是目标bean本身 下面的说法确实是错误的:
@ManagedProperty("#{otherBean.property}")
private String otherBeanProperty;
String
是不可变的,您基本上是在复制属性。这不能通过引用进行更改
相反,你应该做:
@ManagedProperty("#{otherBean}")
private OtherBean otherBean;
然后通过其getter在任何源bean的方法中获得所需的属性。不客气。你说得对,我编辑并澄清了参考答案。