我有一个奇怪的问题。据我所知,我可以将一个SessionScoped bean注入到ViewScoped中,因为它比另一个范围更广。这是我的代码:
@ManagedBean
@ViewScoped
public class ProjectBean implements Serializable {
@ManagedProperty(value="#{projectCurrentBean}")
private ProjectCurrentBean currentBean;
public void setCurrentBean(ProjectCurrentBean currentBean) {
this.currentBean = currentBean;
}
@ManagedProperty(value="#{userCredentialsBean}")
private UserCredentialsBean activeUser;
public void setActiveUser(UserCredentialsBean activeUser) {
this.activeUser = activeUser;
}
这里讲解的是2个托管的bean:
@ManagedBean
@SessionScoped
public class ProjectCurrentBean implements Serializable {
并且
@ManagedBean
@SessionScoped
public class UserCredentialsBean implements Serializable {
使用UserCredentialsBean时一切正常,但当我使用ProjectCurrentBean时失败了:
Unable to create managed bean projectBean. The following problems were found: - The scope of the object referenced by expression #{projectCurrentBean}, request, is shorter than the referring managed beans (projectBean) scope of view
为什么? :)