我刚创建了一个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()
并将电子邮件作为参数提供给UserBean
的{{1}}方法?
这可能吗?我问的原因是,我想确定登录用户的名字,并使用firstname(email)
上的EL表达式显示“Hello YourFirstName ”之类的内容
之前我使用过swing,但我知道web的情况有所不同,所以我猜静态变量不是在JSF中从一个类到另一个类获取变量值的正确方法。
我的<h:outputText value="#{userBean.firstname}"/>
方法有一个SQL查询
UserDAOImpl.getFirstName(email)
提前致谢。我很感激任何帮助。
答案 0 :(得分:1)
只需将getEmail的返回值作为参数传递给firstName方法。
<h:outputText value="#{userBean.firstname(loginBean.email)}"/>
但当然还有一些其他细节。 您应该将这种数据保存在会话范围的bean中。并且每次获取的DataBase访问都不是那么健康。