同様の質問を検索しましたが、少し混乱しています。私はログインページを持っているので、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>
ますか?