Я искал похожие вопросы, но я немного смущен. У меня есть страница входа, поэтому 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, я могу ввести эти beans, правильно? Итак, есть ли у вас какие-либо предложения по этому подходу? можно использовать <f:attribute>
?