假设我们有一个类似
的bean@ManagedBean(name = "categoriesbean")
@RequestScoped
public class CategoriesBean {
Integer id;
public Integer getId() { return id;}
public void setId(Integer idarg) { id = idarg;}
...
...
}
并且在同一个应用程序中,我有其他地方
@ManagedBean(name = "categoriesdetailedbean")
@ViewScoped
public class CategoriesDetailedBean extends CategoriesBean {
Integer idderived;
public Integer getIdderived() { return idderived;}
public void setIdderived(Integer idderivedarg) { idderived = idderivedarg;}
...
...
}
“categoriesdetailedbean”的范围是什么,它的属性(例如Id与Idderived的范围?)。
我问的原因是,我看到了一些我似乎无法理解的效果。
答案 0 :(得分:1)
类注释特定于类本身,并且在子类化时它们将被丢弃。根据您的要求,CategoriesDetailedBean
已经继承了getId()
和setId()
这两种方法。它们不会在不同的范围内神奇地运行,也不会保存不同实例的值。
您对具体的功能要求并不十分清楚,因此很难找到适合您 尝试做的事情的答案。但是如果我猜对了,你实际上想要从托管bean中访问不同的托管bean实例。如果是这样,那么您可以使用@ManagedProperty
。或者您可能需要主 - 详细视图,在这种情况下,您不需要相互注入bean,但最好将详细ID作为GET请求参数传递,并使用<f:viewParam>
进行设置。