我有一个奇怪的问题.Afaik我可以将一个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;
}
Run Code Online (Sandbox Code Playgroud)
2个托管bean:
@ManagedBean
@SessionScoped
public class ProjectCurrentBean implements Serializable {
Run Code Online (Sandbox Code Playgroud)
和
@ManagedBean
@SessionScoped
public class UserCredentialsBean implements Serializable {
Run Code Online (Sandbox Code Playgroud)
它适用于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
Run Code Online (Sandbox Code Playgroud)
为什么?:)
Bal*_*usC 11
您还没有宣布使用bean @SessionScoped的javax.faces.bean包,而是从javax.enterprise.context包.这不结合工作中@ManagedBean的javax.faces.bean包.然后bean将默认为请求范围并且表现得像@RequestScoped.
修复你的进口.
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class ProjectCurrentBean implements Serializable {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3198 次 |
| 最近记录: |