Jsf 2 ViewScoped bean中SessionScoped bean的托管属性无效

Jsf 2 ViewScoped bean中SessionScoped bean的托管属性无效,jsf-2,primefaces,portlet,managed-bean,Jsf 2,Primefaces,Portlet,Managed Bean,我有两颗豆子: 第一个bean是SessionScoped: @ManagedBean(name="opBean") @SessionScoped public class OPBean implements Serializable { private static final long serialVersionUID = 3206256117530229543L; private static Logger LOG = LoggerFactory.getLogger(OPBean.clas

我有两颗豆子:

第一个bean是SessionScoped:

@ManagedBean(name="opBean")
@SessionScoped
public class OPBean implements Serializable {
private static final long serialVersionUID = 3206256117530229543L;
private static Logger LOG = LoggerFactory.getLogger(OPBean.class);

private String testData;

@PostConstruct
public void init() {
    LOG.debug(this.getClass().getName() + " init");
}

// other logic and getters and setters
第二个bean是可视范围的:

@ManagedBean
@ViewScoped
//@RequestScoped
public class POPBean implements Serializable {
    private static final long serialVersionUID = 1L;
    private static Logger LOG = = LoggerFactory.getLogger(POPBean.class);

@ManagedProperty(value = "#{opBean}")
private OPBean opBean;

@PostConstruct
public void init() {
    LOG.debug(this.getClass().getName() + " init"); 
}
// other logic and getters and setters
问题是,在第二个bean POPBean中,我不能更改ManagedProperty opBean.testData的值,以便在会话中按原样保存和保留它,并从{opBean.testData}这样的视图访问它。如果我将第二个bean更改为SessionScoped或RequestScoped,它就会工作

我使用的是PrimeFaces、JSF2.0,它运行在类似ApachePluto的portlet应用程序上


所以,主要的问题是ViewScope bean不能像它应该的那样具有SessionScoped bean的mangaed属性。

bean名称不是问题,我很遗憾,如果第二个bean OPBean是RequestScope或SessionScope,那么一切都很好,但是ViewScope id不起作用。你知道为什么这不起作用吗?这是JSF2.0的问题吗?