mar*_*zzz 8 jsf facelets javabeans jsf-2
我在我的Web应用程序上有这个配置.2豆:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
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...
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我想知道如何在我的loginbean 上设置昵称,所以我可以在我的数据库上进行查询.
实际上我需要获取当前会话bean登录的实例:我怎样才能得到它?我应该使用像session.getBean("login"):) 这样的东西
希望这个问题很清楚:)
Bal*_*usC 11
使用@ManagedProperty注射,并使用@PostConstructBean的建设后,对其进行访问(因为在正常的构造将是仍然null).
@ManagedBean
@SessionScoped
public class User {
@ManagedProperty(value="#{login}")
private Login login;
@PostConstruct
public void init() {
// Put original constructor code here.
}
// Add/generate getters/setters and other boilerplate.
}
Run Code Online (Sandbox Code Playgroud)
也就是说,这不是正确的做法.你想反过来这样做.注入User在Login通过@ManagedProperty(value="#{user}")做提交操作方法的过程中的工作.
你也想把密码放在WHERE子句中.绝对没有必要将整个用户表拖入Java的内存并逐个确定.让DB完成工作并检查它是否返回零行或一行.
小智 8
还可以尝试使用以下代码:
ExternalContext tmpEC;
Map sMap;
tmpEC = FacesContext.getCurrentInstance().getExternalContext();
sMap = tmpEC.getSessionMap();
login loginBean = (login) sMap.get("login");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23450 次 |
| 最近记录: |