我搜索了类似的问题,但我有点困惑。我有一个登录页面,所以 LoginBean 也是;
@ManagedBean(name = "loginBean")
@SessionScoped
public class LoginBean implements Serializable {
private String password="";
private String image="";
@ManagedProperty(value = "#{loginBeanIdentityNr}")
private String identityNr="";
...
成功后,导航到订单列表页面,所以我也有 OrderBean。
@ManagedBean(name = "OrderBean")
@SessionScoped
public class OrderBean {
List<Ordery> sdList;
public List<Order> getSdList() {
try {
String identityNr ="";
ELContext elContext = FacesContext.getCurrentInstance().getELContext();
LoginBean lBean = (LoginBean) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "loginBean");
identityNr =lBean.getIdentityNr();
sdList = DatabaseUtil.getOrderByIdentityNr(identityNr);
...
}
我不需要整个 LoginBean,只需要 ManagedProperty“loginBeanIdentityNr”。但是下面的这段代码不起作用(当然);
identityNr = (String) FacesContext.getCurrentInstance()
.getApplication().getELResolver()
.getValue(elContext, null, "loginBeanIdentityNr");
这次它返回 null 给我。我想如果我需要整个 bean 属性,我可以注入这些 bean,对吗?那么,您对这种方法有什么建议吗?可以<f:attribute>
用吗?