我有两个豆子:
第一个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的漫画属性。