Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JSF中,目标Bean中的非Bean管理的属性不会随着源Bean中属性的更改而更新吗?反之亦然_Jsf_Jsf 2 - Fatal编程技术网

在JSF中,目标Bean中的非Bean管理的属性不会随着源Bean中属性的更改而更新吗?反之亦然

在JSF中,目标Bean中的非Bean管理的属性不会随着源Bean中属性的更改而更新吗?反之亦然,jsf,jsf-2,Jsf,Jsf 2,我将一个bean中的属性用作另一个bean中的托管属性 我面临的问题是源bean中属性的更改,目标bean的托管属性没有得到更新。如果Java使用引用而不是在内存中创建新对象,那么这种情况不应该发生,但确实发生了 我的两个bean都是会话作用域。这是否会影响财产的注入?这是否意味着如果bean是会话范围的,视图中的更改不会初始化注入?即便如此,这也违背了用户巴卢斯在对这个答案的评论中提出的参考意见 显然,您直接引用的是目标bean的属性,而不是目标bean本身 下面的说法确实是错误的: @Man

我将一个bean中的属性用作另一个bean中的托管属性

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

我的两个bean都是会话作用域。这是否会影响财产的注入?这是否意味着如果bean是会话范围的,视图中的更改不会初始化注入?即便如此,这也违背了用户巴卢斯在对这个答案的评论中提出的参考意见


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

下面的说法确实是错误的:

@ManagedProperty("#{otherBean.property}")
private String otherBeanProperty;
String
是不可变的,您基本上是在复制属性。这不能通过引用进行更改

相反,你应该做:

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

然后通过其getter在任何源bean的方法中获得所需的属性。

不客气。你说得对,我编辑并澄清了参考答案。