ログイン後の登録ユーザーがファイルをダウンロード・アップロードできるシンプルなプロジェクトクラウドを開発しています。私はEclipseJavaEE、JSF、Hibernateで開発しています。私のプロジェクトでは、ユーザーにサインインできます。データが正しい場合は、ユーザーメニューを開きますが、ログに記録されたユーザーに関する情報をどこに保存するかがわかりません。明確ではないので、セッションの概念。Hibernateとセッションについていくつか読んだことがありますが、まだ理解していません。少なくとも現在ログインしているユーザーのユーザー名を保持する必要があります。どのオブジェクトを使用しますか?そして、どこ?。私たちを手伝ってくれますか?ありがとう
@ManagedBean
@SessionScoped
public class Login {
private String userId;
private String password;
public Login() {}
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;
}
public String loginUser (){
SessionHandler s = new SessionHandler();
Session sessione = s.getDb();
sessione.beginTransaction();
Query query = sessione.createQuery( "Select password from Utenti where username= :id" );
System.out.println("Qui lo prende: " + this.getUserId());
query.setParameter("id", userId);
System.out.println("tag debug");
List<Utenti> res= query.list();
if(password.equals(res.get(0))){
this.setUserId(userId);
return "first";
}
else
return "noaccess";
}
TreeBeanでユーザーIDを使用する必要があります。これは私のTreeBeanです:
@ManagedBean
@SessionScoped
public class TreeBean {
@ManagedProperty(value="#{login.userId}")
private String user;
private TreeNode root;
private TreeNode selectedNode;
private Session db;
public Session getDb() {
return db;
}
public void setDb(Session db) {
this.db = db;
}
public void setUser(String user) {
this.user = user;
}
public String getUser(){
return user;
}
public TreeBean() {
root=new DefaultTreeNode("Root", null);
System.out.println("Prova"+ user);
recursive(0, root);
}
.xhtmlでは、ファイルは問題なくユーザーIDを読み取ることができます。なんで?ありがとう