JSF bean和对象
我有一个JSF项目,我正在尝试做一个登录页面,在我的项目中,我有一个托管bean,它有一个用户名和密码的验证方法,我有一个bean类,其中包含setter和getter,其中包含数据库中填充的用户信息,例如(username、password、isActive、Full name),我的问题是,如果JSF el表达式中的用户信息不在托管bean中,如何在xhtml页面中调用它们 这是我的java bean:JSF bean和对象,jsf,javabeans,managed-bean,Jsf,Javabeans,Managed Bean,我有一个JSF项目,我正在尝试做一个登录页面,在我的项目中,我有一个托管bean,它有一个用户名和密码的验证方法,我有一个bean类,其中包含setter和getter,其中包含数据库中填充的用户信息,例如(username、password、isActive、Full name),我的问题是,如果JSF el表达式中的用户信息不在托管bean中,如何在xhtml页面中调用它们 这是我的java bean: @Table(name="students_info") public class Us
@Table(name="students_info")
public class User {
@Column(name="std_record_id")
private int id;
@Column(name="std_id")
private String userId;
@Column(name="first_name")
private String firstName;
@Column(name="web_password")
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
这是我的登录名:
@ManagedBean
@SessionScoped
public class MBLogin {
User user = new User();
LoginDAO loginDao = new LoginDAO();
public String validteStudent() {
boolean valid = loginDao.validateStudent(user.getUserId(), user.getUserId());
if (valid) {
HttpSession session = SessionUtils.getSession();
session.setAttribute("username", user);
return "student";
} else {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,
"Incorrect Username and Passowrd", "Please enter correct username and Password"));
return "login";
}
}
}
为用户添加一个getter:
@ManagedBean
@SessionScoped
public class MBLogin {
User user = new User();
LoginDAO loginDao = new LoginDAO();
public String validteStudent() {
boolean valid = loginDao.validateStudent(user.getUserId(), user.getUserId());
if (valid) {
HttpSession session = SessionUtils.getSession();
session.setAttribute("username", user);
return "student";
} else {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,
"Incorrect Username and Passowrd", "Please enter correct username and Password"));
return "login";
}
}
public User getUser() {
return user;
}
}
然后在xhtml中,您可以这样称呼它:{user.id}
,{user.firstName}
您能给我们看一下您的代码吗?根本不需要访问托管bean???@khalim我想访问托管bean,并且只有在托管bean中复制了我的实例变量、setter和getter时才能访问它们,但这没有意义,对吗?对不起,我是新来的JSF@luudvankeulen在这里,我更新了我在您的代码中的帖子,用户位于您的managedbean中。只需为用户创建一个getter,您就可以在xhtml中将其称为:{user.id}
谢谢,先生,这很好:数据对我的getter有效,但现在我的setter不起作用了,有没有办法修复它们?只需在managedbean中添加一个setter。谢谢,先生,现在只剩下#{user.firstName}不优先于任何东西,并且我确信它使用System.out.println(user.getFirstName())打印输出时有一个值;在我的dao课程中,你能告诉我为什么会发生这种情况吗?我非常感激。