içinde başka bir fasulyeden managebean özellik nasıl elde edilir Benzer sorular aradım ama biraz kafam karıştı. Giriş sayfam var, bu yüzden LoginBean da; Başarılı olduktan sonra, sipariş listesi sayfasına gider, bu yüzden de OrderBean'ım var.JSF
@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);
...
}
Ben, sadece ManagedProperty "loginBeanIdentityNr" Bütün LoginBean gerekmez. Ancak aşağıdaki kod çalışmıyor (elbette); bu kez bana null değerini döndürür. Eğer bütün fasulyeye ihtiyaç duyarsam, bu fasulyeleri enjekte edebilirim, değil mi? Yani, bu yaklaşım için herhangi bir öneriniz var mı? <f:attribute>
kullanılabilir mi?
merhaba BalusC, ama bu sefer OrderBean'da, loginbean'ın gereksiz özelliklerine sahip olacağım. program için yığın israfı değil mi? sadece kimlik numarasına ihtiyacım var. captcha değeri veya adı değil. – asyard
Uh, bu sadece bir referans. Bütün fasulyenin bir kopyasını hafızada ya da bir şeyde yapmaz. Zaten oturumda olduğu gibi ** aynı ** fasulye işaret eder. Java nesne yönelimli, prosedürel veya bir şey değil. Daha da önemlisi, bir dize yerine bir dize çift referans verme potansiyel olarak daha pahalıdır. – BalusC
Cevabınız için teşekkürler. Ben yeterince itibar almak en kısa sürede tüm cevapları oy verecek :) Ama, sadece meraklı, facescontext.getblabla() gibi başka bir yol var mı? Veya jsf sayfa enjekte olmadan parametre olarak? – asyard