我的 Web 应用程序上有此配置。 2个 bean :
1° Bean - 检查登录;
@ManagedBean(name="login")
@SessionScoped
public class Login {
private String nickname;
private String password;
private boolean isLogged;
public String getNickname() { return nickname; }
public void setNickname(String newValue) { nickname=newValue; }
public String getPassword() { return password; }
public void setPassword(String newValue) { password=newValue; }
public void checkLogin() {
... i check on db the nickname and the password ...
if(USER EXIST) {
isLogged=true;
} else {
isLogged=false;
}
return true;
}
}
2° Bean - 管理用户参数:
@ManagedBean(name="user")
@SessionScoped
public class User {
private String name;
private String surname;
private String mail;
public User() {
String[] record=null;
Database mydb=Configuration.getDatabase();
mydb.connetti();
ArrayList<String[]> db_result=null;
db_result=mydb.selectQuery("SELECT name, surname, mail, domicilio FROM users WHERE nickname='???????'");
int i = 0;
while (i<db_result.size() ) {
record=(String[]) db_result.get(i);
i++;
}
}
... getter and setter methods...
}
如您所见,我想知道如何获取之前在我的
login
上设置的昵称。 bean,所以我可以在我的数据库上进行查询。事实上,我需要获取当前 session bean 登录的实例:我怎样才能得到它?我应该使用
session.getBean("login")
之类的东西:)希望这个问题很清楚:)
最佳答案
也尝试使用以下代码:
ExternalContext tmpEC;
Map sMap;
tmpEC = FacesContext.getCurrentInstance().getExternalContext();
sMap = tmpEC.getSessionMap();
login loginBean = (login) sMap.get("login");
关于JSF - 获取 SessionScoped Bean 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4278861/