【发布时间】:2016-11-21 18:15:49
【问题描述】:
我刚刚创建了一个登录托管 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() 方法并将电子邮件作为参数提供给UserBean 的firstname(email) 方法?
这可能吗?我问的原因是,我想识别登录用户的名字,并使用<h:outputText value="#{userBean.firstname}"/>
我之前使用过 swing,但我知道 web 的情况有所不同,所以我猜静态变量不是在 JSF 中从一个类到另一个类获取变量值的正确方法。
我的UserDAOImpl.getFirstName(email) 方法有一个 SQL 查询
String SQL = "SELECT firstname from customer WHERE emailcolumn = email;
提前致谢。如有任何帮助,我将不胜感激。
【问题讨论】:
-
了解注射。如果您是 jsf 新手,请使用 cdi 托管 bean 而不是(某种)已弃用的 jsf 特定 bean