ViewScoped bean中SessionScoped bean的托管属性不起作用

时间:2015-01-14 08:29:50

标签: 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.class);

private String testData;

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

// other logic and getters and setters

第二个bean是ViewScoped:

@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,JSF 2.0,它在Apache Pluto上像portlet app一样运行。

所以主要的问题是ViewScoped bean不能像它应该具有SessionScoped bean的漫画属性。

0 个答案:

没有答案