JSF 从一个托管 bean 获取值作为参数传递给另一个托管 bean
JSF Obtaining value from one managed bean to another as argument
我刚刚创建了一个登录托管 Bean,并且运行良好。它采用电子邮件和密码的值。
现在,我的问题是如何将LoginBean.java获取的email的值传递给我的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}"/>
上的 EL 表达式显示类似 "Hello YourFirstName" 的内容
我之前使用过 swing,但我知道 web 有所不同,所以我猜静态变量不是在 JSF 中从一个 class 获取变量值到另一个 class 的正确方法。
我的 UserDAOImpl.getFirstName(email)
方法有一个 SQL 查询是
String SQL = "SELECT firstname from customer WHERE emailcolumn = email;
提前致谢。如果有任何帮助,我将不胜感激。
只需将 getEmail 的 return 值作为参数传递给 firstName 方法。
<h:outputText value="#{userBean.firstname(loginBean.email)}"/>
当然还有一些其他的细节。
您应该将此类数据保存在会话作用域的 bean 中。每次获取数据库访问都不是很健康。
How to choose the right bean scope?
我刚刚创建了一个登录托管 Bean,并且运行良好。它采用电子邮件和密码的值。
现在,我的问题是如何将LoginBean.java获取的email的值传递给我的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 中从一个 class 获取变量值到另一个 class 的正确方法。
我的 UserDAOImpl.getFirstName(email)
方法有一个 SQL 查询是
String SQL = "SELECT firstname from customer WHERE emailcolumn = email;
提前致谢。如果有任何帮助,我将不胜感激。
只需将 getEmail 的 return 值作为参数传递给 firstName 方法。
<h:outputText value="#{userBean.firstname(loginBean.email)}"/>
当然还有一些其他的细节。 您应该将此类数据保存在会话作用域的 bean 中。每次获取数据库访问都不是很健康。
How to choose the right bean scope?