簡體   English   中英

JSF從一個托管bean到另一個獲得bean的值作為參數

[英]JSF Obtaining value from one managed bean to another as argument

我剛剛創建了一個Login Managed Bean,並且運行完美。 它采用電子郵件和密碼的值。

現在,我的問題是如何將由LoginBean.java獲得的電子郵件的值傳遞給我的UserBean.java

index_customer.xhtml

<h:outputText value="#{userBean.firstname}"/>

UserBean.java

@ManagedBean(name="userBean")
public class UserBean {
   private static String firstname;
   private String lastname;
   private String email;
   private String password;

   public String firstname(String email){
       String fname;
       UserDAOImpl userDAOImpl = new UserDAOImpl();
       fname = userDAOImpl.getFirstName(email);
       return fname;
   }  

}

LoginBean.java

@ManagedBean(name = "loginBean")

public class LoginBean {

    private String email;

    public String getEmail() {
        return email;
    }
}

我如何調用方法getEmail()並將電子郵件作為參數提供給UserBeanfirstname(email)方法?

這可能嗎? 我問的原因是,我想標識登錄用戶的名字,並使用<h:outputText value="#{userBean.firstname}"/>上的EL表達式顯示類似“ Hello YourFirstName ”的內容。

我之前使用過swing,但我知道Web上的情況有所不同,因此我猜想靜態變量不是在JSF中將變量值從一個類獲取到另一個類的正確方法。

我的UserDAOImpl.getFirstName(email)方法有一個SQL查詢,它是

String SQL = "SELECT firstname from customer WHERE emailcolumn = email;

提前致謝。 我將不勝感激。

只需將getEmail的返回值傳遞給firstName方法作為參數即可。

<h:outputText value="#{userBean.firstname(loginBean.email)}"/>

但是,當然還有其他一些細節。 您應該將這種數據保留在會話作用域bean中。 而且,每次獲得數據庫訪問權限都不是很健康。

如何選擇合適的bean范圍?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM